1

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

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

回答

1

这是这是问题的-10.0f!

2

我相信你正在寻找的是repeatCount

r.setRepeatCount(0) 

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

从文档:

设置多少次动画应该重复。如果重复 计数为0,则动画不会重复。如果重复计数大于0或无限 ,重复模式将予以考虑 。重复计数默认为0。

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

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

P.S.你的ROTATE_FROMROTATE_TO值是什么?

+0

嗨,我有那里,我不想它只重复旋转一次 – Jonno

+0

我添加了我的价值观。我也猜测这是一个内插器问题! – Jonno

+1

那么现在我看到你的值了,是'ROTATE_TO'中的'-10.0f'一个错字?我没有尝试,但似乎有点关闭 - 也许它是多次。就像滑雪板一样。无论如何,如果你找出解决问题的方法,请添加后续评论,这样下一个发生在页面上的人就能看到答案。 – dustmachine