如何放置随机图像而不重复它们?

时间:2019-01-15 21:23:46

标签: java android android-studio

我已尝试对某个应用进行编程,该应用中会出现一些卡,并且有必要将它们与其他卡结合在一起,问题是当我将它们随机化时,某些会重复出现,而另一些则不会出现。

如何使图像显得随机但不能重复?

这就是我的做法

  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)]);

2 个答案:

答案 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()来获得数组的随机排列。