我试图无限制地动画我的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);
但它并没有重复动画,而是在第一次迭代结束时停止。如果我弄错了,请告诉我。
答案 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);
如果有人服务,此代码将使对象无限期地自行旋转。
祝你好运!!