每轮for循环的不同图像

时间:2016-05-17 14:29:34

标签: android for-loop filenames drawable android-drawable

我有图像作为资源,文件名是image1,image2,...等等。我想在旋转木马中使用这些图像。我可以在轮播中生成相同的图像,但资源的名称应该在每一轮循环中改变。

以下是代码:

    for (int i = 0; i < 4; i++) {
        ImageView imageView = new ImageView(this);
        imageView.setId(i);
        imageView.setPadding(2, 2, 2, 2);
        imageView.setLayoutParams(layoutParams);
        imageView.setImageBitmap(BitmapFactory.decodeResource(
                getResources(), R.drawable.image_01));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        mainHorizLinLayout.addView(imageView);
    }

因此,我想使用 image_ + i 而不是 image_01 。我尝试创建一个字符串并在 R.drawable.image_01 中使用它,但它不起作用。

任何想法,坦克?

3 个答案:

答案 0 :(得分:2)

R.drawable.image_01不是字符串( ALT +点击查看R类)。但这些整数是有序的,所以你可以这样做:

 imageView.setImageBitmap(BitmapFactory.decodeResource(
            getResources(), R.drawable.image_01 + i));

答案 1 :(得分:2)

试试这种方式

int[] images = {R.drawable.image_01, R.drawable.image_02, R.drawable.image_03, R.drawable.image_04, R.drawable.image_05};

for (int i = 0; i < images.length; i++) {
    ImageView imageView = new ImageView(this);
    imageView.setId(i);
    imageView.setPadding(2, 2, 2, 2);
    imageView.setLayoutParams(layoutParams);
    imageView.setImageBitmap(BitmapFactory.decodeResource(
                getResources(), images[i]));
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
    mainHorizLinLayout.addView(imageView);
}

答案 2 :(得分:2)

在我之前建议的一种方法是使用包含图像资源ID的数组。

另一种方法是获取所需图像的资源ID,如下所示:

int drawableResourceId = this.getResources().getIdentifier("image_" + i, "drawable", this.getPackageName());