Android从数组

时间:2016-01-25 13:10:59

标签: java android background drawable android-drawable

我是Android新手,我正在尝试更改Java中ImageView的背景。这部分正在运作。问题是我有4个图像,我想随机选择一个并显示图像。

例如,我有一系列drawables:

String[] images = new String[4];
images[0] = "R.drawable.i1";
images[1] = "R.drawable.i2";
images[2] = "R.drawable.i3";
images[3] = "R.drawable.i4";

我试图用它来选择一个随机的:

int idx = new Random().nextInt(images.length);
String random = (images[idx]);

但是,我似乎无法获得imageview的setBackground来使用它们。

例如,我尝试过:

images.setBackgroundDrawable( getResources().getDrawable(R.drawable.images[random]) );

我知道我没有正确地做到这一点,但这就是我想做的事。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

    int[] images = new int[4];
    images[0] = R.drawable.i1;
    images[1] = R.drawable.i2;
    images[2] = R.drawable.i3;
    images[3] = R.drawable.i4;

    int idx = new Random().nextInt(images.length);
    int random = (images[idx]);
    images.setBackgroundDrawable( getResources().getDrawable(images[random]) );

答案 1 :(得分:0)

您的问题似乎是,您希望通过字符串调用方法。这绝对是无用的,除非你使用java SQL调用或XML ...无论如何。如果你调用draw方法,你需要实际的图像对象。

有一个简单的解决方案:D 而不是使用String[]。使用ArrayList<Image> 之后,您可以调用方法list.shuffle()

一些伪代码:

ArrayList<Image> yourImages = new Arraylist<>();
yourImages[1] = image1
yourImages[2] = image2
...

yourImages.shuffle(); //shuffles your list

print(yourImages[1]);
print(yourImages[2]);
...

第一个优点是你的照片会随机显示。 第二个优点是每个显示的图片没有重复。

PS:它也适用于Image [] + Random类。但是为什么选择一个String []。字符串是文本的表示...而不是图像。