当前位置: 代码迷 >> Android >> 从内存卡读取图片,放到list里头,再放进adapte里面出错啦
  详细解决方案

从内存卡读取图片,放到list里头,再放进adapte里面出错啦

热度:28   发布时间:2016-04-28 05:54:34.0
从内存卡读取图片,放到list里面,再放进adapte里面出错啦
这是代码
gv = (GridView) this.findViewById(R.id.mygridview);
helper = new DBHelper(this);
Cursor c = helper.getAll();
// SimpleCursorAdapter adapter=new SimpleCursorAdapter(Record.this,
// R.layout.item, c, new String[]{""}, to);
Bitmap[] arr = null;
Bitmap bm;
int i=0;
List list=new ArrayList();

for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
int flag = c.getInt(c.getColumnIndex("flag"));
String picname = c.getString(c.getColumnIndex("picname"));
System.out.println(flag+"-"+picname);
System.out.println(Environment.getExternalStorageDirectory() + "/suanming/"+picname);
bm=BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/suanming/"+picname);
BitmapDrawable d=new BitmapDrawable(bm);
// l.setBackgroundDrawable(d);
HashMap<String, Object> hash=new HashMap<String, Object>();
hash.put("picname",bm);
list.add(hash);
}
SimpleAdapter adapter=new SimpleAdapter(Record.this,list, R.layout.item, new String[]{"picname"}, new int[]{R.id.imageview_item});
gv.setAdapter(adapter);




这是报的错:Unable to decode stream: java.io.FileNotFoundException: [email protected]: open failed: ENOENT (No such file or directory)

我把hashmap里放进R.Drawble.*图片可以显示,但是放bitmap,就显示不出来了,是不是我图片太大了啊,我相机1300w的,一张图片好几兆
------解决方案--------------------
图片路径有问题
open failed: ENOENT (No such file or directory)
找不到该文件/该文件是个目录
------解决方案--------------------
你显示图片的代码贴出来看看,感觉你显示的时候是调用的android系统的资源来显示,当然你放R.drawable.*可以显示,放你自己的有问题。你注意看报错信息:java.io.FileNotFoundException: [email protected]  不是显示的你SD卡的真实目录找不到。
  相关解决方案