2D графическая библиотека для Android - PullRequest
4 голосов
/ 14 декабря 2011

Я работаю над приложением Android, которое требует двухмерного графического представления с большим набором объектов.Вот что мне в основном нужно отображать:

enter image description here

В моем случае это могут быть сотни пространственно распределенных объектов.Этот вид будет вести себя как карта, поэтому пользователь может прокручивать по горизонтали и вертикали, увеличивать и уменьшать масштаб.Это также требует обработки события щелчка, поэтому пользователь может щелкнуть любой треугольник, и я затем должен отобразить некоторую расширенную информацию, связанную с этим конкретным треугольником.

Меня больше всего волнуют 3 вещи:

  • Если я перерисую все объекты в моем обработчике onDraw(), это будет очень медленно.Также есть случаи, когда мне даже не нужно рисовать все эти объекты, так как некоторые из них невидимы в зависимости от уровня масштабирования и положения прокрутки.Это требует использования четырехугольных деревьев, которые я не хочу реализовывать вручную.
  • Все эти объекты определены как (x, y, вращение, тип), поэтому в случае, если клиент решит, что нам нужно «показать все»Кнопка, мне придется реализовать функциональность для расчета ограничивающих рамок.
  • Мне нужно иметь возможность обрабатывать события щелчка и (возможно) перетаскивание для всех этих фигур.

ЕстьЕсть ли библиотека, которая может помочь мне с этими задачами?Просто не хочу тратить 3 дня на то, что, я считаю, уже реализовано.

1 Ответ

2 голосов
/ 14 декабря 2011

Все методы в классе Canvas пакета android.graphics должны быть достаточными.Canvas выполняет отсечение (то есть команды рисования отбрасываются, если оно не видно), поэтому, если изображение статично, вы можете отобразить его в Picture и нарисовать его на onDraw().

Я думаю, что рисуноку методов есть методы для вычисления границ и их возврата.См Path х computeBounds(RectF bounds, boolean exact).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...