Разработка альтернативного интерфейса для Android. Куда мне идти? - PullRequest
0 голосов
/ 09 ноября 2010

Я разрабатываю приложение для Android, в котором мне нужен пользовательский интерфейс, требующий следующего:

  1. Перерисовать как минимум 10 кадров в секунду

  2. Кнопки на экране, но не прямоугольной формы

  3. Весь экран (или, по крайней мере, фон, если он слишком тяжел для системы), перед рендерингом необходимо выполнить маскировку «porter-duff», на лету

В настоящее время я разобрался с двумя путями, у обоих есть свои минусы и плюсы:

  1. Начните с существующего View - ViewGroup в рамках. Переопределение onDraw для добавления маскировки к нему. Это легче реализовать, но я не уверен, что вызов 'invalidate', который часто вызывает какие-либо проблемы?

  2. Создайте альтернативную структуру View - ViewGroup и выполните рендеринг в SurfaceView. Но потом я осознаю, что включаю структуру, которая выглядит довольно близко к существующей в фреймворке, и я чувствую, что делаю что-то почти то же самое с фреймворком.

Есть предложения?

(пс. В любом случае, я не уверен, как мне поймать событие нажатия кнопки, которое имеет неправильную форму)

1 Ответ

0 голосов
/ 09 ноября 2010

Кнопка проста. Просто добавьте представление Button в свой макет и используйте XML для определения своего собственного изображения.

android:background="@drawable/my_button_background"

Граница автоматически определяется как границы рисованного объекта. Просто и легко.

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