Архив рубрики Создание компонентов

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

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

Визуально все работает как надо. Остались нереализованными только переливающиеся стрелочки по бокам кнопки. Их реализация — задача второстепенная, ее оставляю на усмотрение читателя, в качестве домашнего задания, а сейчас научим нашу кнопку собственно быть кнопкой — т.е. сообщать о срабатывании туда, куда надо (стучать в КГБ). Попутно, добавим тактильности — короткое вибро при нажатии на иконку кнопки и такое же короткое вибро при срабатывании. Начнем с обработки срабатывания.

Далее …

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

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

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

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

Далее …

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

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

Понадобилось в одной моей разработке выводить напоминание с двумя кнопками — типа «принять» и «напомнить позже». В принципе можно было не заморачиваться, но хотелось чего-то оригинального.

Давно мне не давали покоя кнопки приема/отклонения звонка или будильника/таймера в моем Samsung Galaxy S5 — круглая кнопочка, при нажатии на нее, из нее вылезает полупрозрачный расширяющийся круг. А когда тянешь палец в сторону — за ним тянется еще один расширяющийся круг. Дотащив второй круг до границы первого вызываем срабатывание кнопки. А если не дотащить до границы и отпустить, то оба круга плавно сожмутся и исчезнут. Как это выглядит в натуре видно на миниатюре к этому посту.

Далее …

SliderButton — реализация скользящей кнопки типа «Slide to unlock»

Точнее это не Slide to unlock, а скорее реализация ответа на звонок: кнопка по центру, которую можно сдвигать влево или вправо до конца экрана. Такой функционал может использоваться, например, при приеме звонка (принять/отклонить), при активизации напоминания (завершить/отложить) и тому подобное. Переделать это под Slide to unlock достаточно просто. Сразу скажу, что идея не моя, идея взята со StackOverflow, однако доработана мной в соответствии со своим видением того, как это должно работать.

Итак. Мне нужна кнопка по центру экрана, которую можно будет сдвигать влево или вправо, тем самым выбирая один из двух вариантов действия. Можно было бы заморочиться с ImageView, такая реализация тоже мне попадалась, однако больше всего мне понравился вариант модифицировать под это SeekBar. Этот компонент уже имеет на борту почти весь необходимый функционал, осталось лишь слегка подрихтовать.
Далее …