2014-08-30 58 views
0

我做了一个5位图的ArrayList。为了创建一个ArrayList,我创建了自己的类。在gridview中显示图像。当我点击网格查看项目时,BitmapFactory.decodeFile()返回null,因为项目的位置没有正确返回。下面是代码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: [email protected] 
+0

您是否尝试过清理您的项目? – 2014-08-30 21:58:09

+0

是的。但是同样的错误 – user3864752 2014-08-30 22:09:50

+0

你可以发布'getView'吗? – mmlooloo 2014-08-31 02:06:09

回答

0

你没有得到项目位置与这条线,

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

您铸造Item类字符串。您应该这样做,以获得对象的'名称',

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

这是获取名称,但图像不显示 – user3864752 2014-08-30 22:14:31

+0

当我点击网格视图的项目1时,祝酒信息同时返回项目1,项目2和项目3的名称 – user3864752 2014-08-30 22:15:55

+0

然后路径是错误的。你应该给图像的路径来解码它作为位图。 – 2014-08-30 22:17:39

相关问题