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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值