1. 首页
  2. 移动开发
  3. Android
  4. Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解

Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解

上传者: 2022-06-03 04:10:31上传 PDF文件 152.96 KB 热度 10次

最近接了一个项目其中有功能要实现一个清理内存,要求和微信的效果一样。于是想到用surfaceView而不是继承view。而第一块区域的扇形较大只不过是半径大一点而已。每个SurfaceView 对象有两个独立的graphic buffer,官方SDK将它们称作"front buffer"和"back buffer"。在第一个"lockCanvas-drawCanvas-unlockCanvasAndPost"循环中,更新的是buffer A的内容;到下一个"lockCanvas-drawCanvas-unlockCanvasAndPost"循环中,更新的是buffer B的内容。如果buffer A与buffer B中某个buffer内容为空,当屏幕轮流显示它们时,就会出现画面黑屏闪烁现象。出现黑屏是因为buffer A与buffer B中一者内容为空,而且为空的一方还被post到了屏幕。这样能保证两个buffer的内容是同步的,缺点是做了无用功,耗费性能。而黑色是surfaceView的默认色。

下载地址
用户评论