旋转动画速度

时间:2011-08-19 21:36:45

标签: android animation duration linear-interpolation rotateanimation

我希望我的动画只旋转一圈。每当我调整持续时间时,它只会以相同的速度旋转更长/更慢。我哪里错了?

private static final float ROTATE_FROM = 0.0f;
private static final float ROTATE_TO = -10.0f * 360.0f;
protected RotateAnimation r = new RotateAnimation(ROTATE_FROM, ROTATE_TO,
                                        Animation.RELATIVE_TO_SELF, 0.5f,
                                        Animation.RELATIVE_TO_SELF, 0.5f);
r.setDuration(5000);     
r.setRepeatCount(0);
r.setInterpolator(this, android.R.anim.linear_interpolator);
r.setAnimationListener(AndroidVideoPlayer.this);        
favicon.startAnimation(r);

2 个答案:

答案 0 :(得分:2)

我相信你要找的是repeatCount

r.setRepeatCount(0)

http://developer.android.com/reference/android/view/animation/Animation.html#setRepeatCount(int

来自文档:

  

设置动画应重复的次数。如果重复   count为0,动画永远不会重复。如果重复计数是   大于0或INFINITE时,将采用重复模式   帐户。默认情况下,重复次数为0。

或者你是说动画继续为你设置的duration旋转? (即,你设置为5000它旋转5秒即使它超过“结束”)。如果将该值设置为小于旋转动画所需的时间,该怎么办?

在这种情况下,可能是你的LinearInterpolator动画的恒定变化率。您可以打印computeDurationHint()的值以查看应用程序是否能够猜测持续时间应该是多长。

P.S。您的ROTATE_FROMROTATE_TO值是多少?

答案 1 :(得分:1)

这是问题的-10.0f!