首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

【8.3】关于simpleAdapter没法显示bit地图的有关问题

2012-09-22 
【8.3】关于simpleAdapter没法显示bitmap的问题这个问题很棘手,打log明明都找了视频缩略图bitmap的路径,但就

【8.3】关于simpleAdapter没法显示bitmap的问题

这个问题很棘手,打log明明都找了视频缩略图bitmap的路径,但就是显示出来

?

其实是simpleAdapter自己的问题,它有自己的view绑定规则

?

可以先看看这个:http://www.cnblogs.com/over140/archive/2010/12/15/1906303.html

?

在看看这个:http://hi.baidu.com/blue_hmq/blog/item/03baf6ca02cf1614bf09e663.html

?

其中说道:

SimpleAdapter类:一个使静态数据和在XML中定义的Views对应起来的简单adapter。你可以把list上的数据指定为一个Map范型的ArrayList。ArrayList里的每一个条目对应于list里的一行。Maps包含着每一行的数据。你先要指定一个XML,这个XML定义了用于显示一行的view。你还要指定一个对应关系,这个对应关系是从Map的keys对应到指定的views。绑定数据到views发生在两个阶段:

?

如果一个simpleAdapter.ViewBinder是可用的,那么SetViewValue(android.view.View,Object,String)要被调用。如果返回true,那么绑定发生了。如果返回false,那么如下views将被按顺序地尝试:

?

~实现了Checkable的View(如CheckBox),预期的绑定值是boolen

?

~TextView,预期的绑定值是String,并且SetViewText方法被调用

?

~ImageView,预期的绑定值是一个资源的id或String。并且SetViewImage方法被调用

?

如果没有合适的绑定被发现,一个IllegalStateException被抛出。

?

simpleAdapter果然够静态……泪流满面中

?

解决方法,自己重写imangView的绑定规则:

?

看看这个:http://www.anddev.org/listview_simpleadapter_and_bitmaps_-_bug_-t11817.html

?

adapter.setViewBinder(new MyViewBinder());

?

public class MyViewBinder implements ViewBinder {

?

@Override

public boolean setViewValue(View view, Object data, String textRepresentation) {

if( (view instanceof ImageView) & (data instanceof Bitmap) ) {

ImageView iv = (ImageView) view;

Bitmap bm = (Bitmap) data;

iv.setImageBitmap(bm);

return true;

}

?

return false;

}

?

}

?

用位与符号&而不用&&的原因未知,知道的同学不吝赐教

?


热点排行