我已尝试对某个应用进行编程,该应用中会出现一些卡,并且有必要将它们与其他卡结合在一起,问题是当我将它们随机化时,某些会重复出现,而另一些则不会出现。
如何使图像显得随机但不能重复?
这就是我的做法
int[] images = {R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four};
Random rand = new Random();
imgSelected.setImageResource(images[rand.nextInt(images.length)]);
imgSelected2.setImageResource(images[rand.nextInt(images.length)]);
imgSelected3.setImageResource(images[rand.nextInt(images.length)]);
imgSelected4.setImageResource(images[rand.nextInt(images.length)]);
int[] images2 = {R.id.imgfive, R.id.imgsix, R.id.imgseven, R.id.imgeight};
//
Random rand2 = new Random();
img1.setImageResource(images2[rand2.nextInt(images2.length)]);
img2.setImageResource(images2[rand2.nextInt(images2.length)]);
img3.setImageResource(images2[rand2.nextInt(images2.length)]);
img4.setImageResource(images2[rand2.nextInt(images2.length)]);
答案 0 :(得分:0)
在使用图像时将其删除。
List<Integer> images....
Random rand = new Random;
int randomInt = rand.nextInt(images.size());
imgSelected.setImageResource(images[rand.nextInt(images.length)]);
images.remove(randomInt);
randomInt = rand.nextInt(images.size());
imgSelected2.setImageResource(images[rand.nextInt(images.length)]);
images.remove(randomInt);
randomInt = rand.nextInt(images.size());
imgSelected3.setImageResource(images[rand.nextInt(images.length)]);
images.remove(randomInt);
randomInt = rand.nextInt(images.size());
imgSelected4.setImageResource(images[rand.nextInt(images.length)]);
images.remove(randomInt);
这样,就不会再使用该图像了。
答案 1 :(得分:0)
您可以使用Collections.shuffle()
来获得数组的随机排列。