/*This is my function code*/
Random random = new Random();
int randomInt = random.nextInt()%200;
String imgName = "img" + randomInt;
int ImageId = getResources().getIndentifier(imgName,"drawabale",getPackageName());
myImage.setImageResourse(ImageId);
以前在我的drawable文件夹中有 已经使用img1,img2 ..... img199插入了200张图像 像命名法...... 每次我打电话给下面的随机功能来生成一个 随机数并形成一个从中开始的字符串名称 " IMG"和一些数字。但大多数时间只有0由随机函数生成,id设置为 图像是不断显示第0个图像。在某些时候它成功显示其他图像,但大多数时候它连续生成零值。
提前致谢!
答案 0 :(得分:5)
您可以生成具有特定范围的随机数
Random r = new Random();
int randomInt = r.nextInt(maxVal - minVal) + minVal
为您的例子
int randomInt = r.nextInt(200 - 1) + 1
将生成介于1到199之间的数字。
答案 1 :(得分:0)
由nextInt
生成的随机数应随机为200
的倍数,即每200
左右一个。该测试表明这种情况正确发生:
public void test() {
Random random = new Random();
final int tests = 200000;
int twoHunderdIsAFactor = 0;
for (int i = 0; i < tests; i++) {
if (random.nextInt() % 200 == 0) {
twoHunderdIsAFactor += 1;
}
}
System.out.println("Tests = " + tests + " Hits = " + twoHunderdIsAFactor + " Proportion = " + (tests / twoHunderdIsAFactor));
}
打印Tests = 200000 Hits = 1012 Proportion = 197
- 即200
randoms约200000
次。
在其他答案中处理在特定范围内生成randoms。