我需要帮助使用setImageResource方法设置随机图像。 在drawable文件夹中,我有一个名为photo0.jpg的jpeg文件,photo1.jpg ... photo99.jpg。 以下代码有效:
int p = R.drawable.photo1;
image.setImageResource(p);
以上将显示photo1.jpg但我想显示一个随机图像。 我尝试了以下但它不起作用。
String a = "R.drawable.photo";
int n = (int) (Math.random()*100)
String b = Integer.toString(n);
String c = a+b;
int p = Integer.parseInt(c);//checkpoint
image.setImageResource(p);
似乎字符串“R.drawable.photoXX”在检查点未被更改为整数。 有人可以教我一个正确的代码吗? 提前谢谢。
答案 0 :(得分:5)
由于开销成本的原因,字符串在这样的工作中非常邪恶。由于Android已经为您提供了整数id,我建议将它们全部存储到一个int数组中,然后使用随机数作为索引。
代码看起来像这样:
int imageArr[] = new int[NUM_IMAGES];
imageArr[1] = R.drawable.photo;
//(load your array here with the resource ids)
int n = (int)Math.random()*NUM_IMAGES;
image.setImage(imageArr[n]);
这里我们有一个非常直接的实现,并绕过字符串concats发生的所有创建和破坏。
答案 1 :(得分:0)
可能错误就在这里
int n =(int)(Math.random()* 100)
把%not *像这样
int n =(int)(Math.random()%100)
让所有数字都低于100