我尝试在Android中制作旋转游戏。 我发现很难以正确的方式旋转圆圈。 我很乐意帮助如何旋转圆圈并停止它,这样我每次都会得到不同的结果。 此刻它会转动一定时间并返回到开头。 如果我通过这个msmallWheelBack.clearAnimation()停在它的中间,它将返回到该轮的开始。 提前感谢您的帮助。
在我的代码中:
Animation animation = AnimationUtils.loadAnimation(this, R.anim.rotate_around_center_point);
mframeWheelBig.startAnimation(animation);
anim xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<rotate
android:duration="2500"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:toDegrees="360"
android:fromDegrees="0"
android:fillAfter="true"
android:fillBefore="true"
android:fillEnabled="true"/>
</set>
就像我说这就是我停止动画的方式
mframeWheelBig.clearAnimation();
答案 0 :(得分:0)
您可以通过编程方式为&#39; toDegrees&#39;设置随机值。我想你也可以设置超过360度,以获得更多旋转。
但是,我没有为该值找到一个setter方法,所以我想你必须使用RotateAnimation
以编程方式创建动画,但是它仍然很容易
这将在3到6圈之间旋转,并且可以在任何角度停止。
final static int MIN_TURNS = 3;
final static int MORE_TURNS = 3;
float toDegrees = 360 * MIN_TURNS + Math.random() * 360f * MORE_TURNS;
Animation anim = new RotateAnimation(0, toDegrees);