Android TextView动画无限重复不起作用

时间:2016-03-28 18:46:36

标签: android

我试图无限制地动画我的TextView。我编写了如下定义动画效果的sequential.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:interpolator="@android:anim/linear_interpolator" >


    <!-- Move -->
    <translate
        android:duration="800"
        android:fillAfter="true"
        android:fromXDelta="0%p"
        android:startOffset="300"
        android:toXDelta="2%p" />

    <translate
        android:duration="800"
        android:fillAfter="true"
        android:fromXDelta="0%p"
        android:startOffset="1900"
        android:toXDelta="-2%p" />

</set>

将此动画分配给TextView的活动代码如下所示:

TextView tv = new TextView(this);
tv.setText(customObject.getText());
Animation animSequential;
animSequential = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequential_horizontal);
animSequential.setRepeatMode(Animation.RESTART);
animSequential.setRepeatCount(Animation.INFINITE);
tv.startAnimation(animSequential);

但它并没有重复动画,而是在第一次迭代结束时停止。如果我弄错了,请告诉我。

1 个答案:

答案 0 :(得分:3)

在XML代码中尝试此操作。 java代码不起作用,我用这个很好地解决了。只需在代码中应用它:

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

    <rotate
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="360"
        android:duration="1000"
        android:repeatCount="infinite"
        android:repeatMode="restart"/>

</set>

在代码中添加<rotate>的最后两行。在您的情况下,在两个组件<translate>内部并删除等效的Java代码:

animation.setRepeatMode(Animation.INFINITE);
animation.setRepeatCount(Animation.INFINITE);

如果有人服务,此代码将使对象无限期地自行旋转。

祝你好运!!