我制作了一个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
答案 0 :(得分:0)
您没有使用此行获取项目位置
String itemPosition = _bitmaps.get(position).toString();
您正在将Item
类转换为字符串。您应该这样做以获取对象的“名称”,
String itemPosition = _bitmaps.get(position).name;