ListView使用SimpleAadapter加载drawable类型图片对象

来源:互联网 发布:windows系统修复工具 编辑:程序博客网 时间:2024/05/14 09:10

      一般情况下使用SimpleAdapter来作为ListView适配器的时候,使用的图片都是在drawable目录下的图片id加载,即R.drawable.XX。实际开发中经常都是从服务器获取图片资源,得到的图片类型可能是Drawable或者Bitmap类型。

      加载其他类型的图片主要用到的是SimpleAdapter中的ViewBinder类。

使用Drawable类型的图片:

SimpleAdapter adapter = new SimpleAdapter(getActivity(), getSimpleData(), R.layout.fragment_two_item, str, id);this.setListAdapter(adapter);adapter.setViewBinder(new ViewBinder() {@Overridepublic boolean setViewValue(View view, Object data, String arg2) {if(view instanceof ImageView && data instanceof Drawable){ImageView iv = (ImageView)view;iv.setImageDrawable((Drawable)data);return true;}else{return false;}}            });   

使用Bitmap类型的图片:

SimpleAdapter adapter = new SimpleAdapter(getActivity(), getSimpleData(), R.layout.fragment_two_item, str, id);this.setListAdapter(adapter);adapter.setViewBinder(new ViewBinder() {@Overridepublic boolean setViewValue(View view, Object data, String arg2) {if(view instanceof ImageView && data instanceof Bitmap){ImageView iv = (ImageView)view;iv.setImageBitmap((Bitmap)data);return true;}else{return false;}}            }); 
      

在制作openfire+smack的IM实时聊天app的好友通讯录时发现加载好友的头像无法显示,图片类型无法匹配ListView的Adapter,故经过查找资料,做个记录,方便日后查找。



1 0