Android:使用setImageResource设置随机图像

时间:2010-06-11 22:23:36

标签: android

我需要帮助使用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”在检查点未被更改为整数。 有人可以教我一个正确的代码吗? 提前谢谢。

2 个答案:

答案 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

相关问题