PC客户端与Android实现图片传送
16lz
2021-01-23
PC服务端,用于发送图片
Android客户端用于接收图片并展示
import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) {try {ServerSocket server = new ServerSocket();server.bind(new InetSocketAddress(33336));Socket socket = server.accept();//socket.getInetAddress();DataOutputStream dos = new DataOutputStream(socket.getOutputStream());FileInputStream fis = new FileInputStream("E:/workspace/android/Server/test.png");int size = fis.available();byte[] data = new byte[size];fis.read(data);dos.writeInt(size);dos.write(data);dos.flush();dos.close();fis.close();socket.close();server.close();} catch (IOException e) {e.printStackTrace();}}}
Android客户端用于接收图片并展示
package com.tw;import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.IOException;import java.net.Socket;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.CompressFormat;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class TestActivity extends Activity {private ImageView imageView = null;private Bitmap bmp = null;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);imageView = (ImageView) findViewById(R.id.imageView1);Button btn = (Button) findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {public void onClick(View v) {Thread t = new Thread() {@Overridepublic void run() {super.run();Socket socket = null;try {socket = new Socket("192.168.102.67", 33336);DataInputStream dataInput = new DataInputStream(socket.getInputStream());int size = dataInput.readInt();byte[] data = new byte[size];// dataInput.readFully(data);int len = 0;while (len < size) {len += dataInput.read(data, len, size - len);}ByteArrayOutputStream outPut = new ByteArrayOutputStream();bmp = BitmapFactory.decodeByteArray(data, 0,data.length);bmp.compress(CompressFormat.PNG, 100, outPut);//imageView.setImageBitmap(bmp);myHandler.obtainMessage().sendToTarget();} catch (IOException e) {e.printStackTrace();} finally {try {socket.close();} catch (IOException e) {e.printStackTrace();}}}};t.start();}});}private Handler myHandler = new Handler(){public void handleMessage(android.os.Message msg) {imageView.setImageBitmap(bmp);};};}
更多相关文章
- android_常用UI控件_02_EditText_01添加图片到edittext中
- Android 图片点击 全屏缩放预览
- Android富文本图文混排、粗体、斜体、图片、下划线、删除线等
- Android读取服务端TXT(JSON格式数据)返回汉字乱码的问题
- android调用系统(相机)的图片,并且返回
- Android之十三图片2D翻转
- Android 编程下背景图片适配工具类