Как я могу создать круглый регулятор громкости в Android? - PullRequest
0 голосов
/ 28 июня 2011

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

sample http://dmonzon.com/2011/04/16/free-tabletphone-user-interface-professional-set-v-7/

Существуют ли какие-либо учебные пособия или идеи, какие способы лучше подходят для подобных вещей?

1 Ответ

1 голос
/ 28 июня 2011

Одним из простых способов является использование настраиваемого представления:

  • Создание настраиваемого представления
  • Рисование кнопки в настраиваемом представлении
  • Использование onTouchEvent
  • In в MotionEvent.ACTION_MOVE вызывает invalidate ();
  • В onDraw вычислите угол между вашим пальцем и центром кнопки с помощью функции atan2 ()
  • Затем используйте canvas.rotate длясделайте так, чтобы кнопка следовала за пальцем.

Некоторые примеры, которые могут помочь: Простое настраиваемое представление и способ задания исходных данных (например, объема): Просмотр инфляции и настраиваемые представления

Повернуть растровое изображение: Android: Как повернуть движущийся анимированный спрайт на основе координат его назначения

onTouchEvent и сделать недействительным: Сделать определенную область растрового изображения прозрачной при касании

Как пользовательский вид соединит громкость?Если у вашей активности есть общедоступная переменная статического тома, то пользовательское представление может установить громкость, вызвав MyActivity.volume = (100/360) * angle, или, что еще лучше, у вашей активности может быть публичный статический метод setVolume (volume) {...}который затем может выполнить некоторый код при изменении громкости - в пользовательском представлении кнопки громкости вызов MyActivity.setVolume (volume);

...