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

1

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

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

Теги:
image
canvas
scrollview
blit

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
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню