出于性能原因,我需要能够有选择地使屏幕上的多个(大约 20 个)矩形无效,因此尝试了以下方法:
Vector<Rect> myRects = new Vector<Rect>();
// ... add some Rects to myRects
for (Rect r : myRects) {
invalidate(r);
}
然而,这似乎使所有 Rect
的并集无效,形成了一个大矩形,覆盖了我试图使其无效的所有小矩形。
如何使屏幕上的多个区域无效,并且仅使这些区域无效?
最佳答案
使一个矩形无效,然后在 onDraw()
中检查您的列表,并为下一个矩形调用 Invalidate()
,直到列表为空。
更好的解决方案是使用 Drawable
并对其调用 InvalidateDrawable()
。
关于Android:如何使屏幕的多个部分无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846595/