我把我的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)。
您的问题是您正在使用整数值。您需要在 Drawable 或位图中转换此 int,如下所示:
holder.image.setImageResource(images[position])
或
holder.image.setImageDrawable( getResources().getDrawable( images[position] ));
或
holder.image.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[position]));
setImageBitmap()
接受位图对象,而不是整数。 您提供的 int 只是 R.java 生成的资源文件中的 id。
Use BitmapFactory.decodeResources():
holder.image.setImageBitmap(BitmapFactory.decodeResource(this.getResources(), images[position]));