获取draw()中的脏区域

时间:2010-10-06 15:16:52

标签: android

如果我使用脏rect参数使自定义视图的一部分无效(),如何在draw()方法中获取脏矩形?画布的剪裁矩形是不一样的 - 根据我的经验,它通常要大几倍。

2 个答案:

答案 0 :(得分:3)

如果脏矩形与传递给invalidate()的脏矩形不同,那是因为屏幕的另一个视图或区域也无效。

答案 1 :(得分:2)

从传递的Canvas对象获取clipRect到onDraw方法。这个clipRect(Canvas :: getClipBounds)实际上是无效的Rect。

有时因为不同的无效区域被联合在一起,clipRect会更大,因此出于性能原因会触发一个事件而不是触发多个事件。