情况大概是这样的。。.我用ListView显示一个文件夹里面的照片或者视频,包括描该文件的标题和日期什么之类的。。。但是在现实缩略图时,却出现下面的错误
Unable to decode stream: java.io.FileNotFoundException: /android.graphics.Bitmap@4298ee50: open failed: ENOENT (No such file or directory)
当然上面说找不到文件的地址是一个内存,这个内存里存的是生成的缩略图,加载数据的代码如下:
其中getData()代码如下:
报错的过程也很微妙,就是我单步调试不会出错,等我调试完了之后,再开屏幕去看的时候,logcat里面才会出现这个错误,而缩略图也显示不出来
Unable to decode stream: java.io.FileNotFoundException: /android.graphics.Bitmap@4298ee50: open failed: ENOENT (No such file or directory)
当然上面说找不到文件的地址是一个内存,这个内存里存的是生成的缩略图,加载数据的代码如下:
/**
* 加载数据
*/
private void AddData()
{
List<Map<String, Object>> list = getData();
SimpleAdapter listItemAdapter = new SimpleAdapter(this, list, R.layout.listview,
new String[]{"pic","title","info"},
new int[]{R.id.list_pic,R.id.list_title,R.id.list_info});
listView.setAdapter(listItemAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
Intent intent = new Intent(MediaListActivity.this,MediaActivity.class);
intent.putExtra("path", mediaFiles.get(arg2).getPath());
startActivity(intent);
}
});
}
其中getData()代码如下:
/**
* 获取数据
* @return
*/
private List<Map<String, Object>> getData()
{
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
mediaFiles = MediaFile.getInfo();
for (int i = 0; i < mediaFiles.size(); i++) {
MediaFile mediafile = mediaFiles.get(i);
String filePath = mediafile.getPath();
Map<String, Object> map = new HashMap<String, Object>();
if (!new File(filePath).exists()) {
continue;
}
Bitmap mediaThumb;
if(filePath.endsWith("mp4"))
{
mediaThumb = getVideoThumbnail(filePath, 72, 72, MediaStore.Images.Thumbnails.MICRO_KIND);
}
else {
mediaThumb = getImageThumbnail(filePath, 72, 72);
}
map.put("pic", mediaThumb);
map.put("title", mediafile.getTitle());
map.put("info", mediafile.getShotTime());
list.add(map);
}
return list;
}
报错的过程也很微妙,就是我单步调试不会出错,等我调试完了之后,再开屏幕去看的时候,logcat里面才会出现这个错误,而缩略图也显示不出来