每轮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());
我有图像作为资源,文件名是 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());