私の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 で停止すると言ったからです。アニメーションの長さを変更すると、出力が同じではないことがわかりました! そのため、持続時間に乱数を入れようとしましたが、うまくいきません.ところで、ランダムであると言っている他の投稿をチェックしましたが、そうではありません.
理想的な状況では、アニメーションは速く始まり、遅くなり、停止します。
事前に割り当ててくれてありがとう!!!