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 и однократному исчезновению представления, а затем созданная вами анимация вызывает также запуск второй анимации.