Android Alpha Fade в выпуске анимации

У меня есть элемент ImageView, который я создаю в своем коде и размещаю внутри моего RelativeLayout. Я установил это изображение как невидимое, чтобы начать с использования следующего кода:

arrow.setVisibility(View.INVISIBLE);

Затем я определил анимацию Fade-In Alpha через XML:

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:fillEnabled="true"
android:fillAfter="true"
android:fillBefore="true">

<alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:startOffset="100"
    android:duration="300" />

/set>

Чтобы запустить анимацию:

Я просто вызываю следующее, чтобы запустить анимацию

myview.startAnimation(myanimation);

Проблема, которую я вижу, состоит в том, что моя анимация заставляет ImageView мигать в полной видимости, а затем проходит анимацию альфа от 0 до 1. Как это исправить? Я не могу установить начальное альфа-значение на 0, потому что альфа-анимация основана на процентах, а не на абсолютном альфа-значении. (например: 0* текущее значение до 1* текущее значение)

Любая помощь будет принята с благодарностью.

1 ответ

Я думаю, что проблема с этой строкой кода:

android:fillBefore="true"

Вот, попробуйте этот код вместо этого, он работает для меня:

<?xml version="1.0" encoding="UTF-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fillAfter="true"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />

Если вы используете animateLayoutChanges в файле макета в сочетании с анимацией, переключение видимости представления приведет к запуску двух анимаций, а также к миганию или миганию представления. Настройка видимости представления приводит к запуску макетов animateLayoutChanges и однократному исчезновению представления, а затем созданная вами анимация вызывает также запуск второй анимации.

Другие вопросы по тегам