Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解
最近接了一个项目其中有功能要实现一个清理内存,要求和微信的效果一样。于是想到用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的默认色。
下载地址
用户评论