安卓用两个imageView实现六分之一概率的转盘的代码
时间: 2023-06-15 13:03:37 浏览: 101
以下是一个简单的安卓转盘示例代码,其中使用两个ImageView来表示转盘和指针,实现六分之一的概率:
1. 在布局文件中添加两个ImageView来分别表示转盘和指针,设置宽高和位置。
```
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_wheel"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerInParent="true"
android:src="@drawable/wheel" />
<ImageView
android:id="@+id/iv_pointer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/pointer" />
</RelativeLayout>
```
2. 在代码中获取ImageView的实例,并使用Random类生成一个0到5之间的随机数,然后计算指针应该旋转的角度。
```
public class MainActivity extends AppCompatActivity {
private ImageView ivWheel, ivPointer;
private Random mRandom = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivWheel = findViewById(R.id.iv_wheel);
ivPointer = findViewById(R.id.iv_pointer);
// 点击按钮开始旋转
findViewById(R.id.btn_spin).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 生成一个0到5之间的随机数
int angle = mRandom.nextInt(6) * 60;
// 计算指针应该旋转的角度,加上偏移量使其指向区域中心
float pivotX = ivPointer.getWidth() / 2f;
float pivotY = ivPointer.getHeight() / 2f;
RotateAnimation rotate = new RotateAnimation(0, angle + 30, pivotX, pivotY);
rotate.setDuration(3000);
rotate.setFillAfter(true);
// 开始动画
ivPointer.startAnimation(rotate);
}
});
}
}
```
3. 运行程序,点击按钮可以开始旋转转盘,指针会随机指向一个区域。
阅读全文