Android 如何从随机化arraylist设置imageview的背景资源?

Android 如何从随机化arraylist设置imageview的背景资源?,android,android-imageview,android-resources,Android,Android Imageview,Android Resources,我想做的是,我将从ArrayList中填充布局中的12颗星,但每个星都位于随机位置,在可使用的绘图中使用随机星 我有6颗独特的星星——蓝色、绿色、橙色、红色、紫色、黄色,每颗都要复制,总共12颗 *函数shuffle放在onCreate中 布局: 代码: List<Integer> imageViews = new ArrayList<Integer>(); List<Integer> images = new ArrayList<Integer>

我想做的是,我将从ArrayList中填充布局中的12颗星,但每个星都位于随机位置,在可使用的绘图中使用随机星

我有6颗独特的星星——蓝色、绿色、橙色、红色、紫色、黄色,每颗都要复制,总共12颗

*函数shuffle放在onCreate中

布局:

代码:

List<Integer> imageViews = new ArrayList<Integer>();
List<Integer> images = new ArrayList<Integer>();


public void viewadd()
{
    imageViews.add(R.id.star1);
    imageViews.add(R.id.star2);
    imageViews.add(R.id.star3);
    imageViews.add(R.id.star4);
    imageViews.add(R.id.star5);
    imageViews.add(R.id.star6);
    imageViews.add(R.id.star7);
    imageViews.add(R.id.star8);
    imageViews.add(R.id.star9);
    imageViews.add(R.id.star10);
    imageViews.add(R.id.star11);
    imageViews.add(R.id.star12);
}



public void imageadd()
{
    images.add(R.drawable.blue);
    images.add(R.drawable.green);
    images.add(R.drawable.orange);
    images.add(R.drawable.red);
    images.add(R.drawable.violet);
    images.add(R.drawable.yellow);
    images.add(R.drawable.blue);
    images.add(R.drawable.green);
    images.add(R.drawable.orange);
    images.add(R.drawable.red);
    images.add(R.drawable.violet);
    images.add(R.drawable.yellow);

}



public void shuffle()
    {
            // TODO Auto-generated method stub

             imageadd();
                viewadd();


               Random rng = new Random(); 
                List<Integer> generated = new ArrayList<Integer>();
                for (int i = 0; i < 12; i++)
                {
                  while(true)
                    {

                      Integer next = rng.nextInt(imageViews.size()) ;
                      if (!generated.contains(next))
                        {
                         generated.add(next);
                         ImageView iv = (ImageView)findViewById(imageViews.get(next));
                         iv.setBackgroundResource(images.get(next));
                         images.remove(next);
                         imageViews.remove(next);
                         break;
                        }

                    }

                }
         }
首先创建要使用的图像列表

List listOfDrawable=新阵列列表

然后用你想用的抽绳把清单填好

Java集合框架确实为您提供了一种方便的方法来混合集合,如下所示

Collections.shufflelistOFDrawalble注意:集合中的

然后你会得到一个随机的图像列表


单击以了解有关此实用程序类的详细信息

为什么不尝试Collections.shuffle;你能举例说明我如何在代码中使用它吗?