Android解决surfaceView中底图闪烁的问题。
2014-04-23 16:10
381 查看
实现原理:当我们在画布上面画了一遍的时候,由于surfaceView画布相当于有两个,两块画布交替出现,所以我们再来一次,重新获得画布,然后画上同样的内容,这样两块画布上面就有了相同的内容了。
//画第一遍
Canvas c = sh.lockCanvas(null);
c.drawLine((GanMao.hK - GanMao.zK) / 2 + 1 * x1,
(GanMao.hG - GanMao.zG) / 2 + 1 * x2,
(GanMao.hK - GanMao.zK) / 2 + 1 * y1,
(GanMao.hG - GanMao.zG) / 2 + 1 * y2, p);
sh.unlockCanvasAndPost(c);
// 再画一遍,这样在第二块画布上面也就画了内容,
Canvas c2 = sh.lockCanvas(null);
//这里一定要记着用c2.drawLine否则会出现问题的。我遇到的是可能画完之后清除不掉了。
c2.drawLine((GanMao.hK - GanMao.zK) / 2 + 1 * x1,
(GanMao.hG - GanMao.zG) / 2 + 1 * x2,
(GanMao.hK - GanMao.zK) / 2 + 1 * y1,
(GanMao.hG - GanMao.zG) / 2 + 1 * y2, p);
sh.unlockCanvasAndPost(c2);
// 然后在取画布取得大小为0,这样上一次画的内容就和画布在一起了,所以就没有闪动的现象了。
//这个可以解决底图闪动的问题。
Canvas canvas = sh.lockCanvas(new Rect(0, 0, 0, 0));
sh.unlockCanvasAndPost(canvas);
这时候我们再
重新锁一次,"持久化"上次所绘制的内容。就会避免闪烁的现象。
//画第一遍
Canvas c = sh.lockCanvas(null);
c.drawLine((GanMao.hK - GanMao.zK) / 2 + 1 * x1,
(GanMao.hG - GanMao.zG) / 2 + 1 * x2,
(GanMao.hK - GanMao.zK) / 2 + 1 * y1,
(GanMao.hG - GanMao.zG) / 2 + 1 * y2, p);
sh.unlockCanvasAndPost(c);
// 再画一遍,这样在第二块画布上面也就画了内容,
Canvas c2 = sh.lockCanvas(null);
//这里一定要记着用c2.drawLine否则会出现问题的。我遇到的是可能画完之后清除不掉了。
c2.drawLine((GanMao.hK - GanMao.zK) / 2 + 1 * x1,
(GanMao.hG - GanMao.zG) / 2 + 1 * x2,
(GanMao.hK - GanMao.zK) / 2 + 1 * y1,
(GanMao.hG - GanMao.zG) / 2 + 1 * y2, p);
sh.unlockCanvasAndPost(c2);
// 然后在取画布取得大小为0,这样上一次画的内容就和画布在一起了,所以就没有闪动的现象了。
//这个可以解决底图闪动的问题。
Canvas canvas = sh.lockCanvas(new Rect(0, 0, 0, 0));
sh.unlockCanvasAndPost(canvas);
相关文章推荐
- 解决Android SurfaceView绘制触摸轨迹闪烁问题的方法
- Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解
- Android 解决SurfaceView切换导致界面闪烁,短暂黑屏问题。
- Android: 利用SurfaceView绘制股票滑动直线解决延迟问题
- Android: 利用SurfaceView绘制股票滑动直线解决延迟问题
- Android截屏SurfaceView黑屏问题的解决办法
- 仿微信清理内存图表动画(解决surfaceView闪烁问题)
- 【Android】解决SurfaceView 会闪 露出背景内容的问题
- Android: 利用SurfaceView绘制股票滑动直线解决延迟问题
- Android解决Fragment中使用SurfaceView切换时闪一下黑屏的问题
- android开发摄像头开发,在自己的SurfaceView里预览,并且解决摄像头预览变形问题--懒人笔记02
- [Android]浮层视频效果,在另外一个Window使用SurfaceView无法正常显示的问题排查与解决
- Android截屏SurfaceView黑屏问题的解决办法
- 解决Android使用SurfaceView播放视频结束后黑屏问题
- Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决方法
- Android: 利用SurfaceView绘制股票滑动直线解决延迟问题
- android viewp嵌套Fragment时遇到The specified child already has a parent. You must call removeView()问题的解决
- Android SurfaceView预览变形完美解决方法
- Android RecycleView分割线详解、完美解决Recyclerview没有分割线的问题
- android :webview 解决遇到的跨域问题