Android: анимация изображений? - PullRequest
2 голосов
/ 15 февраля 2011

У меня есть панель с несколькими ImageViews, каждый из которых используется в качестве кнопки (с помощью OnClickListener).Теперь я хочу добиться, чтобы пользователь нажал на изображение, вокруг изображения появился какой-то эффект свечения (очень похоже на нажатие кнопки barButton на iphone).

Возможно ли это?

Ответы [ 3 ]

1 голос
/ 15 февраля 2011

Это возможно.Правильный способ достижения этого - определить StateList Drawable .
Список состояний определяет отдельное рисование для каждого состояния.

Например, в следующем XML-файле определяется объект рисования, который показывает нарисованный элемент blue_button_pressed, если кнопка нажата, и рисунок blue_button_active во всех других случаях.

<?xml version="1.0" encoding="utf-8"?>
<selector
 xmlns:android="http://schemas.android.com/apk/res/android">

 <item
  android:state_pressed="true"
  android:drawable="@drawable/blue_button_pressed"/>

 <item
  android:drawable="@drawable/blue_button_active"/>

</selector>

Вы помещаете этот файл в папку для рисования, как и любое другое изображение, а также ссылаетесь на него в файлах макета, как и любой другой чертеж.

0 голосов
/ 15 февраля 2011

Большинство видов по какой-то причине на самом деле не анимируют анимационные Drawables. Чтобы сделать это, вы должны вручную запустить анимацию, вызвав метод start() для AnimationDrawable (или, если уж на то пошло, Animatable).

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

У меня не было времени выяснить, почему он так себя ведет, но это то, что мне пришлось сделать.

0 голосов
/ 15 февраля 2011

Вы можете вручную сгенерировать этот эффект свечения как фоновое изображение и сделать его родительским видом за реальными изображениями при нажатии. Но я не думаю, что для этого есть какая-то нативная функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...