功能实现的是ARM9采集摄像头图片数据,用无线路由器socket发送给Android 并刷新显示,达到实时监控目的
代码大体是,UI监听按键,另开一个死循环线程一直接收图片,并保存在byte[]数组data中,然后
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
并开消息通知handle来setImageView显示
但是现在是,画面不等间隔会很快闪过一张出错的图像 ,图像不是绝对的出错,
可以认出是所拍的画面,只是颜色,位置有出入
有人说是刷新的速度过快,ImageView 没有像视频那样底层有引擎渲染,刚刚显示一半的时候,就显示下一张了所以画面会闪
问题:
1、请问这是由于速度过快,渲染的问题吗?还是说发送的图片本身有问题?
2、本人新手,鉴于这个得到图片并刷新显示的问题,各位有什么更好方法 吗?
ImageView、ListView、Drawable、BitmapShader???这里面有不同的实现么???
(鉴于本人能力,目前Linux那边还不能搭建好实时视频服务器,所以只能通过发图片这个方法实现监控)
请大家给帮帮忙指点下啊,谢谢!
------解决方案--------------------
surfaceview
------解决方案--------------------
1 我的理解 基本是渲染的问题, setImageView 不会立刻调用绘制工作的,另开线程绘制的, bitmap 就是个共享的资源, 但没有同步保护,所以会出现渲染问题。
2 这种大量的图形绘制 , 最好用surfaceView ,还有缓冲机制可以增加性能。