Gerator图像随机

时间:2016-06-06 03:06:06

标签: android image random

我有如何生成随机图像而不重复,例如在阵列中驱动15个图像和7个图像来发送imageview但不重复。

 int[] img={ R.drawable.ima1,R.drawable.ima2,R.drawable.ima3,R.drawable.ima4,R.drawable.ima5,R.drawable.ima6,R.drawable.ima7,R.drawable.ima8,R.drawable.ima9,R.drawable.ima10,R.drawable.ima11,R.drawable.ima12,R.drawable.ima13,R.drawable.ima14,R.drawable.ima15};
    int [] game= new int[7];
Random numerRan = new Random();
  for (int i=0;i<game.length ;i++)
           {
               int num= numerRan.nextInt(17);
               int x= img[num];
               game[i]=img[num];

           }

            img1.setImageResource(juego[0]);
            img2.setImageResource(juego[1]);
            img3.setImageResource(juego[2]);
            img4.setImageResource(juego[3]);
            img5.setImageResource(juego[4]);
            img6.setImageResource(juego[5]);
            img7.setImageResource(juego[6]);
            img8.setImageResource(juego[7]);

当我按下按钮控制图像到分数时,rando生成的位置。我遇到的问题是图像重复出现。

我正在使用2种安排,第一种是保存所有图像,第二种是保留随机图像,这将分配图像视图。

1 个答案:

答案 0 :(得分:0)

而不是使用int[]数组,而是使用List<Integer>,例如ArrayList<Integer>

这样,您就可以使用Collections#shuffle(),这将产生预期的效果。它会以非重复的方式随机置换您的列表。您以后要做的就是迭代List

有关详细信息,请参阅Collections文档。

您还可以将该数组转换为List,如下所示:

List<Integer> myList = Arrays.asList(img);

有关详细信息,请查看this question