为什么我们两次使用invalidat()?

时间:2012-09-11 13:46:51

标签: android invalidation

我读了Hello Android书,我不理解PuzzleView类代码的某些部分。 invalidate()函数只重绘页面的一部分,而不是重绘所有页面。这是真的吗?

以下函数,为什么我们使用invalidate()两次?这两者有什么区别?

private void select(int x, int y) {
    invalidate(selRect);
    selX = Math.min(Math.max(x, 0), 8);
    selY = Math.min(Math.max(y, 0), 8);
    getRect(selX, selY, selRect);
    invalidate(selRect);
}

请帮帮我。

干杯

1 个答案:

答案 0 :(得分:0)

因为无效的矩形可能在第一个调用和第二个调用之间发生了变化

View.invalidate(Rect dirty)将导致dirty中定义的区域被重绘