android挑选随机图片?

时间:2011-09-24 03:09:38

标签: java android

如何从2中加载随机图像?

我试过这段代码

final Random rgenerator = new Random();
Integer [] mImageIds = 
 {
  R.drawable.mantrans,
  R.drawable.womentrans,
 };
 Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
 gBall1 = BitmapFactory.decodeResource(getResources(), q);

但它不起作用......

请帮忙

2 个答案:

答案 0 :(得分:1)

这对你有用..

  /////*****Random numbers with out repetation*****//////
    final int[] imageViews = {
            R.id.imgview11, R.id.imgview12, R.id.imgview13  };

    final int[] images = {
            R.drawable.i1, R.drawable.i2, R.drawable.i3  };

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

                    if (!generated.contains(next))  {                           
                        ImageView iv = (ImageView)findViewById(imageViews[i]);                                                  
                        iv.setImageResource(images[next]);

                            generated.add(next);
                            break;
                    }
                }
            }

答案 1 :(得分:0)

这对于这么简单的任务来说太过分了。但我还没有真正使用过Random类。这是另一种方法。

ArrayList<Integer> ids = new ArrayList<Integer>();
ids.add(R.drawable.mantrans); 
ids.add(R.drawable.womentrans);

Collections.shuffle(ids);

gBall1 = BitmapFactory.decodeResource(getResources(), ids.get(0));

你可能需要添加更多的id,因为在2个选项中随机获得可能不像pents90那样随机。