视频监控手机端源代码
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
手机客户端的程序: package com.example.receive; import java.io.DataInputStream; import java.net.Socket; //android.net提供帮助网络访问的类 import android.app.Activity; import android.graphics.Bitmap; //android.graphics是底层的图形库 import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Rect; import android.os.Bundle; //android.os提供了系统服务、消息传输和IPC 机制 import android.view.SurfaceHolder; //android.view提供基础的用户界面接口框架 import android.view.SurfaceView; import android.view.View; import android.widget.Button; //android.widget包含各种 UI 元素(大部分是可见的)在应用程序的屏幕中使用 import android.widget.EditText; public class MainActivity extends Activity { Canvas canvas ; Rect r = new Rect(10, 50, 30, 25); //定义画布大小 SurfaceView v=null; /*SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的 Surface,Surfaceview控制这个Surface的绘制位置*/ @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); SurfaceHolder holder; //通过SurfaceHolder接口访问这个surface protected static final int COMPLETED = 0; private Bitmap bmp=null; //Bitmap是Android系统中的图像处理的最重要类之一 private Button mButton1; //定义按钮 /*setContentView()设置当前的视图(View ),也就是设置一个Activity的显示界面, 使用一个布局文件来控制各种控件的摆放和显示*/ super.onCreate(savedInstanceState); //onCreate时候,会传入一个变量,里面包含上次退出的信息,这里面可以恢复上 次退出的状态 mButton1 =(Button) findViewById(R.id.myButton1); //定义按钮 v=(SurfaceView) this.findViewById(R.id.View_Surface); //定义显示控件 holder=v.getHolder(); { @Override public void onClick(View v) { Thread thread=new Thread (new qaz()); //新建线程 thread.start(); //启动线程进行socket通信 }; //得到显示的句柄 mButton1.setOnClickListener(new Button.OnClickListener() //链接按钮监听事件 } } class qaz implements Runnable { //另起线程,进行socket建立网络罗操作 public void run() //run()方法实现socket建立与断开功能 { Socket client=null; //创建套接字 String IP; //定义字符串 int port; //定义端口 Text22 = (EditText) findViewById(R.id.Text2); //可编辑文本窗 Text33 = (EditText) findViewById(R.id.Text3); //可编辑文本窗 IP = Text22.getText().toString(); //获取服务器端ip地址 port=Integer.parseInt(Text33.getText().toString()); //获取服务器端端口 Canvas canvas ; //创建画布 DataInputStream dataInput=null; //创建输入数据流 try //建立socket实现通信 { client = new Socket(IP, port); //在指定IP和端口上建立socket套接字 private EditText Text22; //定义可编辑文本窗 private EditText Text33; //定义可编辑文本窗 dataInput = new DataInputStream(client.getInputStream()); int size = dataInput.readInt(); //读取图片大小信息 //建立输入流对象 byte[] data = new byte[size]; //创建图片数据存储数组 int len = 0; while (len < size) len += dataInput.read(data, len, size - len); } bmp = BitmapFactory.decodeByteArray(data, 0, data.length; //对数据进行解码 canvas = holder.lockCanvas(r); //获取画布 canvas.drawBitmap(bmp, 0,0, null); //绘制在画布上 { //将输入流得到的图片数据存储在data数组 holder.unlockCanvasAndPost(canvas);//刷新至屏幕 dataInput.close(); //关闭socket数据流 client.close(); //关闭socket链接 } catch(Exception e) { }//捕获异常 } } 本文来源:https://www.wddqw.com/doc/450d0d3c0408763231126edb6f1aff00bfd570fd.html