【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《视频监控手机端源代码》,欢迎阅读!
手机客户端的程序:
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.wddqxz.cn/450d0d3c0408763231126edb6f1aff00bfd570fd.html