我希望我的动画只旋转一圈。每当我调整持续时间时,它只会以相同的速度旋转更长/更慢。我哪里错了?
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);
答案 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_FROM
和ROTATE_TO
值是多少?
答案 1 :(得分:1)
这是问题的-10.0f!