我试图在我的 android 应用程序中制作一个简单的命运之轮。这将是一个带有人名的圆形图像。当按下它下方的按钮时,图像将开始旋转(围绕其中心)。轮换需要在随机时间后停止,所以它当然并不总是相同的人名。现在我只使用带有 1-2-3-4 的图像,如下所示。
我已经看过几乎所有关于此的主题,但无法弄清楚如何使其随机化。目前它总是停在同一个角度,例如总是停在数字 1。
我到目前为止的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_who, container, false);
final ImageView alberto = (ImageView)view.findViewById(R.id.alberto);
Button spin =(Button)view.findViewById(R.id.spin);
final RotateAnimation anim = new RotateAnimation(0f,generateRandomNumber(), Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
anim.setFillAfter(true);
anim.setDuration(1000);
spin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alberto.startAnimation(anim);
}
});
return view;
}
public float generateRandomNumber() {
Random rand = new Random();
int randomNum = rand.nextInt((360 - 0) + 1);
return (float)randomNum;
}
}
所以基本上我给 RotateAnimation 一个随机数,所以它在停止旋转的地方并不总是相同的。但这不起作用,因为就像我说的那样,它总是在 nr 1 上停止。我发现如果我改变动画的持续时间,输出就不一样了!因此,我尝试在持续时间内输入一个随机数,但这也不起作用。顺便说一句,我检查了其他帖子,说它是随机的,但不是。
在理想情况下,动画开始快速,然后减速和停止。
感谢提前分配!!!