带有弹跳插补器的Android Scale Animation

时间:2013-01-01 12:34:58

标签: android android-animation

我正在使用anim xml进行缩放动画,如下所示。动画插值器不起作用。我试图弹跳插值器但是没有工作。

    <?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>

编辑: 实际上我的整个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>

4 个答案:

答案 0 :(得分:96)

终于得到了解决方案。它对我有用,可能对其他人有所帮助。关键是将android:interpolator标签放在动画集中。

<?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>

答案 1 :(得分:20)

如果要在动画集中为动画设置不同的插值器,请将shareInterpolator属性设置为false,如下所示:

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

然后在每个动画元素中设置插值器。显然,shareInterpolator默认设置为true。

答案 2 :(得分:1)

尝试添加持续时间:

<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>

请注意,如果动画集只包含一个动画,则无效。

答案 3 :(得分:0)

Bounce只是一种动画效果,动画以弹跳的方式结束。对于这个设置android:interpolator值到@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" />