BitmapFactory.decodefile返回null?

时间:2014-08-30 21:56:49

标签: android gridview arraylist bitmapfactory

我制作了一个5位图的ArrayList。为了创建一个ArrayList,我创建了自己的类。在gridview中显示图像。当我单击网格视图项时,BitmapFactory.decodeFile()返回null,因为未正确返回项的位置。这是代码

Items.class

public class Items {
final String name;
public final int drawableId;

public Items(String name, int drawableId) {
    this.name = name;
    this.drawableId = drawableId;
  }
}

ArrayList并在其中添加图像

ArrayList<Items> bitmaps = new ArrayList<Items>();
bitmaps.add(new Items("image_name", R.drawable.image1));

在显示图像时

ArrayList<Items> _bitmaps;
.....
String itemPosition = _bitmaps.get(position).toString();

Log.d("POS", "Item Position: " + itemPosition);

Bitmap bitmap = BitmapFactory.decodeFile(itemPosition, options);
imgDisplay.setImageBitmap(bitmap);

注意Log.d.对于gridview的第一个项目,即位置0,它返回

08-31 02:11:47.125: D/POS(943): Item Position: com.example.app.Items@405207f8

1 个答案:

答案 0 :(得分:0)

您没有使用此行获取项目位置

String itemPosition = _bitmaps.get(position).toString();

您正在将Item类转换为字符串。您应该这样做以获取对象的“名称”,

String itemPosition = _bitmaps.get(position).name;