显示随机图像

时间:2014-03-11 08:22:26

标签: java android

我想知道如何随机选择图像并将其设置为图像视图。我知道如何使用兰德方法等。但是有没有办法随机显示,快速,其他图像,然后转到答案。就像你掷骰子一样。

4 个答案:

答案 0 :(得分:1)

使用线程。&使用随机数生成器获得低于您的图像数组长度的数字。并在imageview中设置该图像

答案 1 :(得分:0)

您可以使用Timer和Random类:

以下是代码:

public class AndroidActivity extends Activity {

private ImageView frame;
private Image[] images = {blah, blah, blah};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home_page);
    frame = (ImageView)findViewById(R.id.frame);
    syncTask task = new syncTask(); 
    Timer timer= new Timer();
    task.schedule(timer, 0, 3000);;
}

private class syncTask extends TimerTask {
    public void run() {
        frame.setImageResource(images[random.nextInt(images.length)]);
    }       
}
}

答案 2 :(得分:0)

使用以下功能,它将为您提供随机数。

Random rand = new Random();
int list_pos = rand.nextInt((size_ofimage_array - 1) - 0 + 1) + 0;

将此随机位置传递给图像数组..:)

答案 3 :(得分:0)

希望这会给你一点想法。它可能不是一个完美的解决方案,但你可以试试这个:)

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 imageButton = (ImageButton) findViewById(R.id.newview);
    imageButton.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;
                     }
                   }
                }
                }
            });