我的ImageView
列在.xml
文件中,在我的主java文件中我使用的是代码
static int[] images = { R.drawable.green_0, R.drawable.blue_1,
R.drawable.purple_2, R.drawable.pink_3, R.drawable.red_4,
R.drawable.yellow_5, R.drawable.white_6, R.drawable.teal_7,
R.drawable.babyblue_8, R.drawable.lightgreen_9,
R.drawable.magenta_10, R.drawable.grey_12, R.drawable.black_11 };
显示图像。但是,稍后在代码中我尝试使用行
holder.image.setImageBitmap(images[position].getImage());
给出错误
“无法在基本类型int”
上调用getImage()
如何在我的应用程序中显示图像以使用该行代码而没有错误(不将图像声明为布尔类型int)。
答案 0 :(得分:7)
您的问题是您正在处理整数值。 您需要在Drawable或Bitmap中转换此int,如下所示:
holder.image.setImageResource(images[position])
或
holder.image.setImageDrawable( getResources().getDrawable( images[position] ));
或
holder.image.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[position]));
答案 1 :(得分:0)
setImageBitmap()
接受一个Bitmap对象,而不是int。您提供的int只是R.java生成的资源文件中的id。
使用BitmapFactory.decodeResources():
holder.image.setImageBitmap(BitmapFactory.decodeResource(this.getResources(), images[position]));