Создание android-компонента. Круглая слайд-кнопка. Часть 2 — настройки компонента xml-атрибутами.

Создание android-компонента. Круглая слайд-кнопка. Сага в 3х частях:

Итак, компонент задышал, визуальное работает, однако функционал не не гибок — нет настроек. Менять каждый раз параметры в тексте класса это моветон. Надобно устанавливать параметры xml-атрибутами, на этапе подготовки разметки. Для этого мы внедрим такой функционал в наш компонент.

Для начала создадим файл res/values/attrs.xml с описанием атрибутов, которые будут нашими настройками

background_color, slider_color — эти параметры будут задавать цвета круга-подложки и круга-слайдера соответственно.
grow_duration, shrink_duration — это настройки анимации расширения и сжатия, в миллисекундах
android:src — это ссылка на иконку кнопки, то изображение, которое будет в центре кнопки и которое и служит кнопкой.

Тут надобно отметить, что в отличии от остальных атрибутов, android:src — особенный. Он начинается с префикса android:, тем самым добавляя в параметры стандартный атрибут src андроида, что дает нам возможность при указании параметров нашего компонента в xml-layout — файле написать именно android:src, а не app:src. Кроме того, тип этого атрибута будет такой же, как у оригинального, поэтому в строке не указывается format. Более того, при указании format возникнет ошибка.

Так. Настройки описали. Теперь будем учить нашу кнопку их использовать. Для этого внесем такие изменения в метод init() (выделенные строки):

Здесь мы получаем атрибуты в виде класса TypedArray. Затем методами getColor получаем цвета, getInt — скорость анимации, а getResourceId даст нам идентификатор ресурса иконки для кнопки. В первом параметре этим методам мы передаем идентификатор атрибута, второй параметр — это значение по-умолчанию, которое вернет метод, если атрибут не задан в разметке.

Теперь остается только указать нужные атрибуты в разметке той Activity, в которой будет располагаться наш компонент. Посмотрим на примере уже использованной для тестирования разметки:

Все как обычно. Дополнительные параметры нашего компонента начинаются с app:, все, кроме android:src — здесь указана иконка кнопки, это тот самый стандартный атрибут андроида, который мы использовали под свои нужды.

Вот и все, ничего сложного. Дальше будем допиливать функционал и гламур. Но это — тема следующей сказки.

Продолжение следует…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *