Android性能优化Google课程翻译一:Render----OverDraw

Context:

继续上述文章,我们已经知道了如何收集信息找到OverDraw。现在,我们要如何解决呢?

方法:

  背景色:

1.去掉多余的背景色:

在onCreate()方法中加入:getWindow().setBackgroundDrawable(null);

(我这里北京刚开始是不透明opaque)

2.找到底层View的背景色然后去掉。

Clip剪切:

Android的系统会对重叠的View进行剪切,只计算显示的部分。然而这个特性并没有很好地拓展到自定义View中,所以你需要自己做些处理。例如微软自带的游戏红心大战,叠起来的扑克牌,只有第一张牌全露出,而且他的只露出数字的竖条。

1.Canvas.clipRect(RectF rect)

调用该方法后,rect矩形之外的区域就不会再进行绘制。(哦吼吼!太给力了)

2.Canvas.quickRect(RectF rect, EdgeType type) 

用来判断,rect与当前剪切区域是否相交,不想交返回ture;


(必须把底层那个区域整个View给clip掉才行,我剪掉一小条发现没有,不知道怎么回事了 )



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。