Подтвердить что ты не робот

Анимация Android Scale с интерполятором отскока

Я делаю анимацию масштаба с anim xml следующим образом. Мультипликатор анимации не работает. Я пытаюсь использовать интерполятор bounce, но не работает.

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

    <scale
        android:duration="900"
        android:fromXScale="1"
        android:fromYScale="0.5"
        android:interpolator="@android:anim/bounce_interpolator"
        android:pivotX="50%"
        android:pivotY="0%"
        android:toXScale="1.0"
        android:toYScale="1.0" />
     </set>

EDIT: На самом деле весь мой xml

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

<scale
    android:duration="600"
    android:fromXScale="1"
    android:fromYScale="0.5"
    android:interpolator="@android:anim/bounce_interpolator"
    android:pivotX="50%"
    android:pivotY="0%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

<alpha
    android:duration="@android:integer/config_longAnimTime"
    android:fromAlpha="0.0"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:toAlpha="1.0" />

</set>
4b9b3361

Ответ 1

Наконец, получил решение. Он работает для меня и может быть полезен другим. Ключ должен был поместить тег android: интерполятор в набор анимации.

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/bounce_interpolator" >

<scale
    android:duration="600"
    android:fromXScale="1"
    android:fromYScale="0.5"
    android:pivotX="50%"
    android:pivotY="0%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

<alpha
    android:duration="600"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />

</set>

Ответ 2

Если вы хотите иметь разные интерполяторы для ваших анимаций в наборе анимации, установите для атрибута shareInterpolator значение false следующим образом:

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

И затем установите интерполятор в каждом элементе анимации. По-видимому, shareInterpolator по умолчанию установлено значение true.

Ответ 3

попробуйте добавить продолжительность:

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<scale 
  android:fromXScale="1"
  android:fromYScale="0.5"
  android:interpolator="@android:anim/bounce_interpolator"
  android:pivotX="50%"
  android:pivotY="0%"
  android:toXScale="1.0"
  android:toYScale="1.0"
  android:duration="1000" />
</set>

Обратите внимание, что набор анимации бесполезен, если он содержит только одну анимацию.

Ответ 4

Отказы - это просто эффект анимации, когда анимация заканчивается подпрыгиванием. Для этого параметра android: значение интерполятора для @android: anim/bounce_interpolator. Этот отскок можно использовать с любой анимацией вида. Следующий пример слайда использует эффект отскока.

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/bounce_interpolator">

<scale
    android:duration="500"
    android:fromXScale="1.0"
    android:fromYScale="0.0"
    android:toXScale="1.0"
    android:toYScale="1.0" />