学习自:
https://mp.csdn.net/postedit
如果刷新频率是60hz,每16ms就会打一次信号,请求一个绘制。所以一个绘制不要超过16ms。
如果1秒绘制了60帧,那么它的fps就是60。
比较显著的一个问题就是过度绘制
开发者选项中可以开启查看
原色:没有过度绘制
蓝色:1 次过度绘制
绿色:2 次过度绘制
粉色:3 次过度绘制
红色:4 次及以上过度绘制
模拟器自带的设置界面过度绘制是非常严重的(但是这个界面几乎不会更新,所以无伤大雅)
我们写的一个demo无过度绘制
又写了个demo
发现一个ViewGroup包含一个View的情况,无法避免View的那个地方绘制两次。
目前有3个思路:
1.可能他有api可以解决,我目前不知道这个api,还在百度和问朋友之中
2.自定义控件,但是这样修改起来非常的不灵活。可是目前只能通过这个方法来凑合了。
3.自定义ViewGroup,拿到所有控件占的有颜色区域,在绘制背景的时候进行拦截,仅绘制余下的区域。这个方法实现难度挺大的,但是如果实现了,效果会非常的好。
对于自定义控件进行的优化