Какую платформу можно использовать для построения сложной интерактивной иерархии пользовательского интерфейса на Android? (Как CoreAnimation на iOS) - PullRequest
2 голосов
/ 29 марта 2020

Я портирую редактор векторной графики с iOS на Android. Приложение должно эффективно создавать сложную иерархию графических объектов, чтобы графика могла редактироваться с помощью жестов в реальном времени. Отредактированная работа обычно состоит из изображений, текста и графических примитивов (линии, круги и т. Д. c.). Элементы пользовательского интерфейса, такие как выделение, отображаются на отдельном слое сверху.

В приложении iOS, если изменяется один компонент графика c (например, небольшой текстовый элемент меняет свое содержимое), перерисовывается только этот текстовый элемент.

На iOS мы используем CALayer объекты из CoreAnimation framework. Это работает очень хорошо. Какие рамки можно использовать на Android для этого варианта использования? Существует ли установленный «нативный» способ сделать это или обычно используются сторонние фреймворки?

1 Ответ

2 голосов
/ 08 апреля 2020

Android не имеет аналогичной вещи из коробки. У нас есть core.animation , но он ограничен простыми поведенческими анимациями. Чтобы создать то, что вы хотите, вам нужно использовать SurfaceView или GLSurfaceView и помощь очистки OpenGL. Вы также можете попробовать использовать обычные Canvas из View - у вас будут ограниченные возможности.

Также есть обертки вокруг OpenGl и SurfaceView, такие как libgdx хотя он используется в основном для игр - поэтому он имеет гораздо более широкие возможности, чем вам нужно, но он менее сложен, чем OpenGl.

Надеюсь, это поможет.

...