-1

我读了 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);
}

请帮我 。

干杯

4

1 回答 1

0

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

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

于 2012-09-11T13:51:56.770 回答