尽管使用linear_interpolator,XML动画在开始和结束时加速和减速

时间:2014-05-20 20:59:29

标签: java android xml animation

我需要我的两个动画不断重复,两者之间没有停顿。但是,每次,它在动画开始时加速,并在结束时减速。

我的XML:

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

    <translate
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="10000"
        android:fromYDelta="-100%p"
        android:interpolator="@android:anim/linear_interpolator"
        android:repeatCount="infinite"
        android:startOffset="0"
        android:toYDelta="-1%p" />

</set>



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

    <translate
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="10000"
        android:fromYDelta="0%p"
        android:interpolator="@android:anim/linear_interpolator"
        android:repeatCount="infinite"
        android:toYDelta="99%p"
        android:startOffset="0" />

</set>

任何帮助表示感谢。

注意:Deltas最初是100而不是99,0而不是1,但它没有帮助。

1 个答案:

答案 0 :(得分:1)

将android:interpolator标签放在主设置标签中。

&LT;设置xmlns:android =“schemas.android.com/apk/res/android”; android:interpolator =“@ android:anim / linear_interpolator”&gt;

因此,如果您查看源代码AnimationSet(上下文,资源文件)构造函数,默认情况下将共享内插器设置为true即。如果此集合中的所有动画都应使用与此AnimationSet关联的插值器,则传递true。如果每个动画都应使用自己的插值器,则传递false。因此,您需要将插值器放在集合上,而不是动画片本身。