Android--Gridview使用SimpleAdapter加载bitmap图片
Posted Arbo_Xjb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android--Gridview使用SimpleAdapter加载bitmap图片相关的知识,希望对你有一定的参考价值。
在给Gridview设置Item的时候,需要填充图片和文本两个Item,若是采用SimpleAdapter来加载Gridview的话,直接传入本地的图片资源ID是可以正常显示的。但是如果要显示bitmap资源的话,则需要在set之前通过setViewBinder这个接口转换一下,否则可能会提示无法decode资源,或者提示目录或资源不存在。
Bitmap bitmap = imageLoader.getBitmap(url); //通过网络或者缓存得到的图片资源
HashMap<String, Object> map = new HashMap<String, Object>();
if(url!="")
map.put("ItemName",allBean.getEnName());
map.put("ItemImage", bitmap); //直接传入bitmap资源
map.put("ItemText", allBean.getTitle());
meumList.add(map);
SimpleAdapter saItem = new SimpleAdapter(getContext(),
meumList, <span style="white-space:pre"> </span>//数据源
R.layout.item, <span style="white-space:pre"> </span>//xml实现
new String[]"ItemImage", "ItemText", <span style="white-space:pre"> </span>//对应map的Key
new int[]R.id.ItemImage, R.id.ItemText); <span style="white-space:pre"> </span>//对应R的Id
//以下方法通过setViewBinder接口将bitmap转化一下 这一步很重要!
saItem.setViewBinder(new SimpleAdapter.ViewBinder()
@Override
public boolean setViewValue(View view, Object bitmapData, String s)
if(view instanceof ImageView && bitmapData instanceof Bitmap)
ImageView i = (ImageView)view;
i.setImageBitmap((Bitmap) bitmapData);
return true;
return false;
);
//添加Item到网格中</span>
gridview.setAdapter(saItem);</span>
这样转化之后就可以正常显示远程图片了,此方法同样适用于从SD卡或者本地文件读取图片后,通过SimpleAdapter来显示。
以上是关于Android--Gridview使用SimpleAdapter加载bitmap图片的主要内容,如果未能解决你的问题,请参考以下文章
Android--Gridview使用SimpleAdapter加载bitmap图片
Android--Gridview使用SimpleAdapter加载bitmap图片