另一种在Android应用程序上显示图像的方法

时间:2012-10-15 19:46:17

标签: java android imageview

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

2 个答案:

答案 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]));