Как я могу определить, буду ли я рисовать за пределами экрана при выполнении пользовательского растрового растрескивания в представлении внутри прокрутки в Android - PullRequest
1 голос
/ 20 августа 2010

Я создал подкласс View и выполняю растровое рисование внутри метода onDraw.Этот вид затем помещается в горизонтальный вид прокрутки.Иногда растровые изображения не будут видны, поскольку они прокручиваются за пределами экрана.Чтобы повысить производительность, я бы хотел избежать рисования чего-либо, когда объект не будет виден.

Итак, вопрос в том, как мне определить, что мое растровое изображение будет нарисовано вне экрана, чтобы я мог просто вернуться без рисования?*

1 Ответ

1 голос
/ 03 сентября 2010

Я решил это следующим образом:

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
}
...