这个问题很棘手,打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;
}
}
SharedPreferences settings = getSharedPreferences(assetKey, 0); SharedPreferences.Editor editor = settings.edit(); //写入本地 editor.putString("username", username); editor.putString("assetid", _checkin.getAssetid() + ""); editor.putString("itemid", _checkin.getItemid() + ""); editor.commit();
这里放入值进去的时候要注意两点!
第一:
在getSharedPreferences(assetKey,0);中"assetkey"就相当于Map集合中的Key一样!而后面参数的0,是指赋予其权限!如果,要本地存储!你始终放入一个不变的Key,那么取得的值也就肯定不一样!
第二:
SharedPreferences.Editor editor = settings.edit(); //写入本地
刚开始,我一上来就 Editor editor = settings.edit(); 这样!所以是错的!
SharedPreferences preferences = getSharedPreferences(assetKey, 0); //读取本地数据 String uname = preferences.getString("username", ""); String assetid = preferences.getString("assetid", ""); String itemid = preferences.getString("itemid", "");
SharedPreferences preferences = getSharedPreferences(assetKey, 0);
权限和存入的key要一样!否则就会失败!
然后再读取里面的数据就OK了!其实,简单点解释就是你将一个map放入本地!
map= map.get(key);这样的形式!然后,在取得这个map中存入的另个map集合!
hierarchyviewer工具用来查看android UI的树形结构。
一般在真机上使用会报错。
所以一般在模拟器上使用。使用方法:先在模拟器上运行android app,然后在android sdk目录的tools目录下,运行hierarchyviewer.bat。然后自己可以摸索下。
另外:如果要在模拟器上安装apk的话,可使用
adb install apk_path\xyz.apk