我有图像作为资源,文件名是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 中使用它,但它不起作用。
任何想法,坦克?
答案 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());