3

我将我的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)。

4

2 回答 2

7

您的问题是您正在使用整数值。您需要在 Drawable 或 Bitmap 中转换这个 int,如下所示:

holder.image.setImageResource(images[position]) 

或者

holder.image.setImageDrawable( getResources().getDrawable( images[position] ));

或者

holder.image.setImageBitmap(BitmapFactory.decodeResource(getResources(),  images[position]));
于 2012-10-15T19:51:18.880 回答
0

setImageBitmap()接受一个 Bitmap 对象,而不是一个 int。您提供的 int 只是 R.java 生成的资源文件中的 id。

使用BitmapFactory.decodeResources()

holder.image.setImageBitmap(BitmapFactory.decodeResource(this.getResources(), images[position]));
于 2012-10-15T19:55:34.433 回答