每轮for循环的不同图像

Different image for each round of for loop

我有图像作为资源,文件名是 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 中使用它,但它没有用。

有什么想法吗,坦克?

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

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

试试这个方法

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);
}

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

另一种方法是像这样获取所需图像的资源 ID:

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