2

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

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

2 回答 2

2

我相信你正在寻找的是repeatCount

r.setRepeatCount(0)

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

从文档中:

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

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

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

PS你的ROTATE_FROM价值观ROTATE_TO是什么?

于 2011-08-19T21:44:56.597 回答
1

问题出在-10.0f!

于 2011-08-28T02:59:52.787 回答