安卓TextView动画无限重复不起作用

6

我想要无限地对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的Activity代码如下:

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

但是它没有重复动画,在第一次迭代结束时停止。如果我有什么误解,请告诉我。


请查看以下链接,看看是否有帮助:https://dev59.com/Lm855IYBdhLWcg3wMRVW - Jose P.
1个回答

4
尝试在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代码。请保留HTML标记。
animation.setRepeatMode(Animation.INFINITE);
animation.setRepeatCount(Animation.INFINITE);

如果有人提供服务,这段代码将使一个对象无限制地自转。

祝好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接