如何将随机图像设置为 ImageView? [英] How to set random images to ImageView's?

查看:22
本文介绍了如何将随机图像设置为 ImageView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 9 个图像视图,当我单击刷新按钮时,我想将图像随机设置为 imageview,但我尝试这样它适用于随机分配图像,但它在两个(或)三个 imageview 中重复相同的图像一次.我的代码中的问题在哪里..

i am using 9 image view's i want set images to imageview randomly , when I click on refresh button, but I tried like this it's working for random allocation of images but it's repeating the same image in two (or) three imageview's at a time. where is the problem in my code..

 final int[] imageViews = {
            R.id.imgview11, R.id.imgview12, R.id.imgview13, 
            R.id.imgview21, R.id.imgview22, R.id.imgview23, 
            R.id.imgview31, R.id.imgview32, R.id.imgview33 };

    final int[] images = {
            R.drawable.i1, R.drawable.i2, R.drawable.i3, 
            R.drawable.i4, R.drawable.i5, R.drawable.i6, 
            R.drawable.i7, R.drawable.i8, R.drawable.empty };

    final ImageButton shuffle = (ImageButton) findViewById(R.id.new_puzzle); 
    shuffle.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {        
            Random generator = new Random();
            //int n = 9;
            //n = generator.nextInt(n);
            //Random random = new Random(System.currentTimeMillis());
            for(int v : imageViews) {
                ImageView iv = (ImageView)findViewById(v);
                iv.setImageResource(images[generator.nextInt(images.length - 1)]);
            }
        }
    });      

我不想重复,一个图像只用于一个图像视图..

i don't want repeat, one image for one imageview only..

推荐答案

使用 blessenm 的帖子,我写了一个你需要的类似代码.检查这是否对您有帮助.

using the post of blessenm ,i wrote a similar code that you need. check if this helps you.

shuffle.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) { 

            Random rng = new Random(); 
            List<Integer> generated = new ArrayList<Integer>();
            for (int i = 0; i < 9; i++)
            {
              while(true)
              {
                 Integer next = rng.nextInt(9) ;
                 if (!generated.contains(next))
                 {
                    generated.add(next);
                    ImageView iv = (ImageView)findViewById(imageViews[i]);
                    iv.setImageResource(images[next]);
                    break;
                 }
               }
            }
            }
        });

这篇关于如何将随机图像设置为 ImageView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆