42

我正在做一个比例动画,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

4 回答 4

108

终于得到了解决方案。它对我有用,可能对其他人有帮助。关键是将 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>
于 2013-01-02T05:15:43.930 回答
22

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

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

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

于 2014-01-28T08:44:09.133 回答
2

尝试添加持续时间:

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

请注意,如果动画集仅包含一个动画,则它是无用的。

于 2013-01-01T12:55:09.857 回答
0

Bounce is just an animation effect where animation ends in bouncing fashion. For this set android:interpolator value to @android:anim/bounce_interpolator. This bounce can be used with any kind animation. Following slide down example uses bounce effect.

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

于 2014-09-29T05:58:11.443 回答