android获取缩略图是FileNotFound

来源:互联网 发布:能看网络电视的电视机 编辑:程序博客网 时间:2024/05/19 02:04
情况大概是这样的。。.我用ListView显示一个文件夹里面的照片或者视频,包括描该文件的标题和日期什么之类的。。。但是在现实缩略图时,却出现下面的错误
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里面才会出现这个错误,而缩略图也显示不出来
0 0
原创粉丝点击