0

如何仅使用 1 个 imageView 获取随机图像?

这是我的java代码,但它仍然无法工作,请有人帮帮我。

public class Gameplay extends Activity
{

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gameplay);

    final int[] images = {
            R.drawable.easy1, R.drawable.easy2};

    final ImageButton shuffle = (ImageButton) findViewById(R.id.imageView1); 
    shuffle.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View view) 
        {        
            Random generator = new Random();

            ImageView singleImageView = (ImageView) findViewById(R.id.imageView1);
            singleImageView.setImageResource(images[generator.nextInt(images.length - 1)]);
        }
    });     

}

}

提前致谢

4

3 回答 3

0

在您的情况下,generator.nextInt(images.length - 1)与 等价,generator.nextInt(1)因此它始终返回 0,因为Random.nextInt(int)

返回:来自此随机数生成器序列的下一个伪随机、均匀分布的 int 值,介于 0(包括)和 n(不包括)之间

http://docs.oracle.com/javase/6/docs/api/java/util/Random.html#nextInt(int)

于 2013-10-01T18:31:32.210 回答
0

如果我错了,请纠正我,但我认为您要求一次在屏幕上显示一个 ImageView,并且您只想分配一个 ImageView 并在您的某个时间用随机图像替换图像应用程序。为此,您可以简单地分配一个图像视图(只需在您的视图中放置一个 imageView)并使用 imageview.setImageResource,如下所示:

ImageView singleImageView = (ImageView) findViewById(R.id.single_image_view)
singleImageView.setImageResource(images[generator.nextInt(images.length - 1)];
于 2013-10-01T17:27:33.993 回答
0

您显示的代码仍然可以解决您的问题,您的问题是如何从给定数组中获取随机图像。

images[generator.nextInt(images.length - 1): 这每次都会给你随机图像,在你的图像视图上显示。

于 2013-10-01T17:25:45.417 回答