ListView显示SD卡中的图片
2013-05-18 12:45
120 查看
在Android中使用ListView时,由于ListView的每一个Item的布局相同,且不是很复杂,于是适配器准备用SimpleAdapter,但每个Item需要有一个ImageView控件来显示图片,SimpleAdapter的构造器中有一个List<Map<String, ?>>类型的参数来决定绑定到Adapter上的数据。但是要绑定图片时必须使用图片资源的id,使用Drawable对象和Bitmap对象均会抛出resolveUri failed on bad bitmap uri: android.graphics.drawable.BitmapDrawable@485d7dd0
错误,可是想要显示的图片在SD卡中,并不在drawable资源文件夹中,没有对应的id,怎么办呢?于是就谁用的SimpleAdapter的setViewBinder()方法,如下:
adapter.setViewBinder(new ViewBinder(){
public boolean setViewValue(View view,Object data,String textRepresentation){
if(view instanceof ImageView){
ImageView iv=(ImageView)view;
iv.setImageDrawable((Drawable)data); //注意,此处要强制转换成Drawable类型,因为下面的getData()方法放入的是Drawable类型
return true;
}
else
return false;
}
});
getData()方法,用来告诉适配器所要绑定的数据:
错误,可是想要显示的图片在SD卡中,并不在drawable资源文件夹中,没有对应的id,怎么办呢?于是就谁用的SimpleAdapter的setViewBinder()方法,如下:
adapter.setViewBinder(new ViewBinder(){
public boolean setViewValue(View view,Object data,String textRepresentation){
if(view instanceof ImageView){
ImageView iv=(ImageView)view;
iv.setImageDrawable((Drawable)data); //注意,此处要强制转换成Drawable类型,因为下面的getData()方法放入的是Drawable类型
return true;
}
else
return false;
}
});
getData()方法,用来告诉适配器所要绑定的数据:
public List<Map<String, Object>> getData(List<PIC> picList) { //PIC为自定义实体类 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (PIC pic : picList) { String comment = pic.getComment(); Map<String, Object> map = new HashMap<String, Object>(); map.put("txt", comment); String path = Environment.getExternalStorageDirectory() .getAbsolutePath() + File.separator + "a.png"; map.put("img", new BitmapDrawable(BitmapFactory.decodeFile(path))); //通过SD卡中的图片路径构造一个Drawable对象 list.add(map); } return list; }
相关文章推荐
- Android中读取SD卡中的图片,并显示到ListView
- Android关于ListView显示SD卡上的Bitmap的图片(图片压缩之后)
- ListView显示SD卡中的所有图片
- Android关于ListView显示SD卡上的Bitmap的图片(图片压缩之后)
- Android listview异步加载图片(线程池,内存缓存,SD卡缓存)优化显示
- WinForm版ListView图片查看小程序(用ListView显示某个文件夹中图片为缩略图,PictureBox显示大图)
- Android ListView滑动过程中图片显示重复错位闪烁问题解决
- android:读取SD卡中的图片显示出来(缩略图),SD卡工具类(13)
- listview异步加载sd卡图片
- 在ListView 的Column Header上显示任意图片
- 安卓(Android)ListView 显示图片文字
- listview嵌套gradview,图片显示不完整,偶尔显示,偶尔不显示。
- Android读取SD卡下面所有的TXT文件名 listView显示出来
- 解决ListView中在滚动时已经下载缓存的图片没有显示
- 【移动开发】Android相机、相册获取图片显示并保存到SD卡
- 图片异步下载+本地缓存+listview显示+服务器缩放图像代码
- Android添加图片到ListView或者 RecyclerView显示
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- Android基础篇之在ListView中显示网络图片