Использование затухания в анимации для представления - PullRequest
34 голосов
/ 23 февраля 2011

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

Большое спасибо,

Граци

Ответы [ 3 ]

126 голосов
/ 23 февраля 2011

Предположим, у вас есть ImageView с именем imageView и файл анимации your_fade_in_anim.xml внутри вашей папки res \ anim \:

ImageView imageView = (ImageView) findViewById(R.id.imageView);
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
// Now Set your animation
imageView.startAnimation(fadeInAnimation);

Ваш 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.0" 
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:duration="[duration (in milliseconds)]"
        android:repeatCount="infinite" />
</set>

Замените скобки фактической продолжительностью.

26 голосов
/ 23 февраля 2011

Введите AnimationListener для анимации и сделайте вид видимым, как только анимация запускается.

http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html

3 голосов
/ 16 октября 2014

Вместо бесконечного количества повторений и скрытия / просмотра вашего просмотра, я предлагаю просто не повторять анимацию и изначально начинать с максимального значения альфа-канала. Тогда вы можете использовать:

<?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.0" 
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:duration="[duration (in milliseconds)]"
        android:repeatCount="0" />
</set>

И все готово. Нет необходимости слушать, скрывать или показывать. Так же просто.

...