在可绘制路径中使用随机数

时间:2013-06-24 19:20:58

标签: android random path numbers drawable

我使用随机数将imageButton设置为随机图像。我想知道是否有一种方法可以在drawable的文件路径中使用random int。此代码为无效整数提供运行时错误,但将进行编译。

Random generator = new Random();
int chooseFirstPicture = generator.nextInt(2);
int imagePath1 = Integer.parseInt("R.drawable.image" + chooseFirstPicture);
btn1.setBackgroundResource(imagePath1);

2 个答案:

答案 0 :(得分:1)

嗯..你试图将“R.drawable.image1”字符串转换为不可能的整数。在编译期间,没有检查字符串中的内容,但是当您运行应用程序时,它会立即失败。

最好使用带有适当参数的getResources()。getIdentifier()(link

我希望它有所帮助:)

答案 1 :(得分:1)

您正在将String解析为Integer,因此每次运行代码时都会抛出NumberFormatException

从String键获取资源ID 的正确方法是使用函数getIdentifier()

Random generator = new Random();
int chooseFirstPicture = generator.nextInt(2);
int resourceId = getResources().getIdentifier("image" + chooseFirstPicture, "drawable", getPackageName());
if (resourceId != 0) {
    //Provided resource id exists in "drawable" folder
    btn1.setBackgroundResource(imagePath1);
} else {
    //Provided resource id is not in "drawable" folder.
    //You can set a default image or keep the previous one.
}

您可以在Android Resources class文档中找到更多信息。