Android-изображение с анимацией onClick
Вопрос
Думаю, это странный вопрос, но я попробовал установить onClicklistener в ImageView, и это сработало.Но проблема в том, что пользователь не может ощутить щелчок.Я имею в виду, что если некоторые из вас работали в других мобильных средах (например, Apple iPhone), то когда мы нажимаем на изображение в других средах, это оказывает влияние на изображение, так что пользователь может понять, что на изображение нажали.
Я попытался установить альфу, используя setalpha
метод, но он не работает.Хотя то же самое работает нормально и с реализацией onFocusListener.Может ли кто-нибудь предложить другой способ изменения изображения при нажатии...
Я новичок в Android, поэтому еще не изучил нюансы простой анимации...Если есть какая-нибудь простая анимация, которую я могу использовать для того же самого, дайте мне знать.
Спасибо!
Решение
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha = "1.0"
android:toAlpha = "0.5"
android:duration = "300">
</alpha>
<scale
android:fromXScale = "1"
android:toXScale = "0.9"
android:fromYScale = "1"
android:toYScale = "0.9"
android:pivotX="50%"
android:pivotY="50%"
android:duration = "50">
</scale>
</set>
Я не знаю, правильный ли это метод, но определение анимации, как уже упоминалось, помогло.Теперь нам просто нужно дать
public void onClick(View v) {
v.startAnimation(AnimationUtils.loadAnimation(Context, R.anim.image_click));
//Your other coding if present
}
в методе OnClick, и изменения будут видны...
Другие советы
Вам понадобится использовать объект Drawable, содержащий разные изображения для разных состояний, которые вы хотите поддерживать.Вот пример:
<?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/img_pressed" />
<item android:state_focused="true" android:drawable="@drawable/img_focused" />
<item android:drawable="@drawable/img_at_rest" />
</selector>
Назовите этот файл img.xml или что-то в этом роде и поместите его в свой каталог для рисования, затем установите для изображения ImageView значение img.xml. @drawable/img_at_rest
это исходное изображение, которое вы пытаетесь использовать, а @drawable/img_pressed
и @drawable/img_focused
— это изображения, используемые для соответствующих состояний.Вы также можете использовать сплошные цвета вместо изображений, если это подходит для вашего случая использования.
аним/anim_item.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1."
android:duration="1000">
</alpha>
</set>
И добавить:
myView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.anim_item));
Не уверен, что это работает, но пробовали ли вы setSelected()?http://developer.android.com/reference/android/widget/ImageView.html#setSelected(boolean)