轮盘赌动画旋转得到它停止android的位置

时间:2015-10-14 09:21:46

标签: android animation rotateanimation

我尝试在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();

1 个答案:

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