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

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

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

Для этого используем классический способ — создадим метод setOnClickListener, в котором будет устанавливаться обработчик события onClick:

Теперь, необходимо в нужном месте вызвать метод onClick() интерфейса View.OnClickListener, обработчик которого сохранен нами в члене класса mOnClickListener. Для этого, конечно же, подходит только метод onTouch() нашего класса, в котором идет обработка нажатий на кнопку и перетаскивания. Реализация примитивно проста (новые строки выделены желтым фоном):

mClicked — флаг, который предотвращает повторное срабатывание кнопки, если пользователь начнет возюкать пальцем туда-сюда. Как видно, когда масштаб нашего слайдера становится больше 1 (а это 100%), мы вызываем onClick() у листенера mOnClickListener. Таким образом вызывающий класс получит известие о нажатии.

Соответственно, в той Activity, где будет размещена наша кнопка нужно поступить классическим способом:

В обработке нажатия и срабатывания,как можно заметить, появился вызов метода vibrate(). Это те самые тактильные ощущения. Метод этот невероятно прост:

Один нюанс: для того, чтобы вибрация сработала, у приложения должно быть разрешение на вибрацию. Для этого необходимо в манифесте приложения добавить строку:

Вот и вся любовь.

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

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