Android Studio掷骰子生成随机数(图片版)(Java)
.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
tools:context=".MainActivity">
<ImageView
android:id="@+id/dice_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/empty_dice" />
<Button
android:id="@+id/roll_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/app_name" />
</LinearLayout>
.java
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.service.autofill.OnClickAction;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 从布局文件中获取名叫roll_button的按钮对象的引用
Button rollButton = findViewById(R.id.roll_button);
// 在代码中修改按钮rollButton文本属性
rollButton.setText("Let's Roll");
// 给按钮rollButton设置点击监听器,一旦用户点击按钮,就触发监听器的onClick方法
rollButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
// 产生随机数
Random rand = new Random();
int randNumber = rand.nextInt(6)+1;
// String randNumber2 = rand.nextInt(6)+1;
// 获取对ImageView对象的引用
ImageView diceImage = findViewById(R.id.dice_image);
int drawableResource;
// 将随机数与对应的图片资源联系起来
switch (randNumber){
case 1: drawableResource = R.drawable.dice_1; break;
case 2: drawableResource = R.drawable.dice_2; break;
case 3: drawableResource = R.drawable.dice_3; break;
case 4: drawableResource = R.drawable.dice_4; break;
case 5: drawableResource = R.drawable.dice_5; break;
case 6: drawableResource = R.drawable.dice_6; break;
default:
throw new IllegalStateException("Unexpected value: " + randNumber);
}
// 随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类
Drawable drawable = getBaseContext().getResources().getDrawable(drawableResource);
// 设置ImageView控件最终显示的图片
diceImage.setImageDrawable(drawable);
}
});
}
}
运行结果:
点击按钮,产生一个随机数,显示对应点数,运行结果如下图所示:
骰子图片下载:
https://github.com/udacity/andfun-kotlin-dice-roller/raw/master/DiceImages.zip
下载完成后解压并将图片资源添加到以下目录: