人。我有这个代码(asyncTask)
我的animation()函数:
public void animation()
{
int currentRotation = 0;
anim = new RotateAnimation(currentRotation, (360*4),
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);
currentRotation = (currentRotation + 45) % 360;
anim.setInterpolator(new LinearInterpolator());
anim.setDuration(4000);// i want rotating without this <------------------
anim.setFillEnabled(true);
anim.setFillAfter(true);
refresh.startAnimation(anim);
}
任何人都可以告诉我没有anim.setDuration
可以做到吗????
只是开始..当我按下按钮(例如)动画停止。
请帮我。
问候,彼得。
最终代码:
public void animation()
{
int currentRotation = 0;
anim = new RotateAnimation(currentRotation, (360*4),
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);
currentRotation = (currentRotation + 45) % 360;
anim.setInterpolator(new LinearInterpolator());
anim.setDuration(4000);
// anim.setRepeatMode(Animation.INFINITE);
anim.setRepeatCount(Animation.INFINITE);
anim.setFillEnabled(true);
anim.setFillAfter(true);
refresh.startAnimation(anim);
}
停止动画的和某处refresh.clearAnimation();
这对我来说是完美的..如果这里有些不对劲 - 请告诉我..无论如何,谢谢你的答案:)
答案 0 :(得分:10)
我认为你应该看看重复模式。持续时间是一个循环通过动画的时间,如果你将其设置为重复,那么它可以永远继续。请参阅this和that。
例如,您可以使用:
anim.setRepeatCount(Animation.INFINITE);
anim.setRepeatMode(Animation.RESTART);
答案 1 :(得分:0)
正如PearsonArtPhoto建议的那样,你应该看看重复模式。持续时间是一个循环通过动画的时间,如果你将其设置为在此之后重复,那么它可以永远持续下去。
使用ObjectAnimator来实现结果。 例如,您可以使用:
anim.setRepeatCount(Animation.INFINITE);
anim.setRepeatMode(ValueAnimator.RESTART); //note the difference here