如果我使用脏rect参数使自定义视图的一部分无效(),如何在draw()方法中获取脏矩形?画布的剪裁矩形是不一样的 - 根据我的经验,它通常要大几倍。
答案 0 :(得分:3)
如果脏矩形与传递给invalidate()的脏矩形不同,那是因为屏幕的另一个视图或区域也无效。
答案 1 :(得分:2)
从传递的Canvas对象获取clipRect到onDraw方法。这个clipRect(Canvas :: getClipBounds)实际上是无效的Rect。
有时因为不同的无效区域被联合在一起,clipRect会更大,因此出于性能原因会触发一个事件而不是触发多个事件。