0

我尝试在 Android 中制作旋转轮子的游戏。我发现很难以正确的方式旋转圆圈。我很想帮助如何旋转圆圈并停止它,这样我每次都会得到不同的结果。此刻,它转动了定义的次数并返回到起点。如果我通过这个 msmallWheelBack.clearAnimation() 在它中间停下来,它会返回到回合的开始。预先感谢您的帮助。

在我的代码中:

    Animation animation = AnimationUtils.loadAnimation(this, R.anim.rotate_around_center_point);
    mframeWheelBig.startAnimation(animation);

动画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();
4

1 回答 1

0

您可以以编程方式为“toDegrees”设置一个随机值。我想你也可以设置超过 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);
于 2015-10-14T09:31:06.883 回答