Возможно, этот урок будет полезен для начинающих разработчиков Android.
Если вы хотите создать настоящий телевизионный пульт в своем приложении, вы можете создать различные типы кнопок (например, кнопку d-pad, кнопку громкости, кнопку канала и т. Д.).
Этот урок показывает, как нарисовать кнопку громкости. Кнопка громкости имеет форму капсулы, которую нужно разделить на две части (первая предназначена для увеличения громкости, а вторая для уменьшения). Если вам нужен образец, вы можете посмотреть на пульте телевизора или на изображение ниже.
Таким образом, эта «монолитная» кнопка должна работать как две кнопки, в зависимости от того, какая сторона была нажата.
Давайте посмотрим накод,
1. Напишите метод рисования половины капсулы:
2. Определите длину каждой половины кнопки и сформируйте два скругленных прямоугольника для нижней и верхней части кнопки. Вызовите вышеуказанный метод с параметрами для рисования верхней и нижней половины капсулы, чтобы объединить их в одну.
На этом этапе вы можете увидеть монолитную кнопку громкости, как показано ниже:
Двигаемся дальше. Украсьте кнопку, добавив две иконки (в верхнюю и нижнюю части) и центральный текст.
Определите два метода (первый для рисования значка «+», второй для рисования значка «-») и вызовите их вOnDraw (), добавив необходимые параметры:
Для добавления текста мы вычисляем центр этой кнопки и вызываем этот метод вOnDraw ():
На этом этапе мы получаем это изображение:
Теперь добавьте интерактивные эффекты.
Прежде всего, мы переопределяем методonTouchEvent (), Это помогает нам определитьACTION_UPа такжеACTION_DOWNМероприятия.
Для обнаружения событий, реагирующих на нажатие, мы определяем логические переменные, которые могут изменяться в зависимости от нажатия или отпускания кнопки:
Важно позвонитьInvalidate ()метод. Если этот метод не вызываетсяOnDraw ()метод также не вызывается.
вOnDraw ()метод, внести изменения в рендеринг половины кнопок капсулы с использованием логических переменных.
Здесь мы просто изменим один параметр - Paint. Он перезаписывает предыдущее изображение, добавляя новое.
Используйте градиент:
И получаем окончательный результат:
Вы можете увидеть полный код, нажав на эту ссылку на GitHub: https://github.com/Klarry/volume-button
Надеюсь, этот урок кому-нибудь поможет. :)