[代码]主要实现代码

package cn.dong.mjpeg; import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL; import android.app.Activity;import android.content.pm.ActivityInfo;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.RectF;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.Window;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView; public class surface extends Activity implements Runnable{    private SurfaceHolder holder;        private Thread mythread;        private Canvas canvas;    URL videoUrl;    private String url;    private int w;    private int h;    HttpURLConnection conn;    Bitmap bmp;    @Override    protected void onCreate(Bundle savedInstanceState) {        requestWindowFeature(Window.FEATURE_NO_TITLE);        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.surface);                 url = getIntent().getExtras().getString("CameraIp");                 w = getWindowManager().getDefaultDisplay().getWidth();        h = getWindowManager().getDefaultDisplay().getHeight();                 SurfaceView surface = (SurfaceView)findViewById(R.id.surface);                 surface.setKeepScreenOn(true);// 保持屏幕常亮         mythread = new Thread(this);             holder = surface.getHolder();        holder.addCallback(new Callback() {                         @Override            public void surfaceDestroyed(SurfaceHolder holder) {                // TODO Auto-generated method stub                             }                         @Override            public void surfaceCreated(SurfaceHolder holder) {                // TODO Auto-generated method stub                mythread.start();            }                         @Override            public void surfaceChanged(SurfaceHolder holder, int format, int width,                    int height) {                // TODO Auto-generated method stub                             }        });     }private void draw() {        // TODO Auto-generated method stub        try {                InputStream inputstream = null;            //创建一个URL对象//          url = "http://192.168.8.1:8083/?action=snapshot";            videoUrl=new URL(url);                //利用HttpURLConnection对象从网络中获取网页数据            conn = (HttpURLConnection)videoUrl.openConnection();            //设置输入流            conn.setDoInput(true);            //连接            conn.connect();            //得到网络返回的输入流            inputstream = conn.getInputStream();            //创建出一个bitmap            bmp = BitmapFactory.decodeStream(inputstream);             canvas = holder.lockCanvas();             canvas.drawColor(Color.WHITE);            RectF rectf = new RectF(0, 0, w, h);            canvas.drawBitmap(bmp, null, rectf, null);            holder.unlockCanvasAndPost(canvas);            //关闭HttpURLConnection连接            conn.disconnect();        } catch (Exception ex) {            } finally {              }     }         @Override    public void run() {        // TODO Auto-generated method stub        while(true){            draw();        }    }     }

 

转载于:https://www.cnblogs.com/sirius-swu/p/6815840.html

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. setonClickListener()的解释
  3. 检测Android是否连接WIFI
  4. Android实例三:学习Service
  5. android中Button显示两行字体(spannable)
  6. EditText中inputType="number"还可输入字母的设置
  7. android 发送e-mail实例
  8. Android(安卓)蓝牙客户端实现
  9. Android输入法弹出流程

随机推荐

  1. android中Button显示两行字体(spannable)
  2. android app 捕获全局异常,保存成文件
  3. 竖直的完美seekbar,无缝拖动!
  4. 如何判断一个服务是否正在运行
  5. 使用系统API的SQLite
  6. android in practice_Implementing jobs
  7. [控件]menu菜单
  8. Android获取应用版本号与版本名称
  9. AndroidGUI13:ViewTreeObserver的常用技巧
  10. How to work around Android’s 24 MB me