1

我对 View 进行了子类化,并在 onDraw 方法中进行了一些位图绘制。然后将该视图放置在水平滚动视图中。有时位图将不可见,因为它们已滚出屏幕。为了提高性能,我想避免在对象不可见时绘制任何东西。

所以问题是,我如何确定我的位图将在屏幕外绘制,这样我就可以在不绘制的情况下返回?

4

1 回答 1

1

我通过以下方式解决了这个问题:

Rect s = new Rect();
getLocalVisibleRect(s);

// (...)
// Do not draw if outside screen
Rect b = getBounds();
boolean offScreen = b.left > s.right || b.right < s.left || b.top > s.bottom || b.bottom < s.top;
if (!offScreen) {
    // Draw here
}
于 2010-09-03T08:25:22.780 回答