码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-04-22 20:43:39      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:overdraw   性能优化   annotation   

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掉才行,我剪掉一小条发现没有,不知道怎么回事了 )



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

标签:overdraw   性能优化   annotation   

原文地址:http://blog.csdn.net/zhjali123/article/details/45195147

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!