Android用simpleAdapter来接收一个Bitmap显示

我在一个小项目中需要用到将SD卡中的图片读出后,缩略计算后再simpleAdapter进行显示。在编程过程中,一般来说,在用simpleAdapter适配器时,我们所要显示的图片资源都是程序内的本地资源,而且是以资源的ID(Resources)形式来表现的。但是有时候我们需要用这个适配器来显示网上的远程图片时,该如何直接显示呢?方法是实现ViewBinder()这个接口,在里面定义数据和视图的匹配关系。代码片段如下:

 

  1. ArrayList<HashMap<String, Object>> listItemImage = getFileItems(files);  
  2.     String[] from = {"ItemImage","ItemText","ItemCount"};  
  3.     int[] to = {R.id.listItemImage,R.id.listItemName,R.id.listItemFolderCount};  
  4.     listAdapter = new SimpleAdapter(ImageActivity.this, listItemImage, R.layout.listview_item, from, to);  
  5.       
  6.     /*实现ViewBinder()这个接口*/  
  7.     listAdapter.setViewBinder(new ViewBinder() {  
  8. @Override  
  9. public boolean setViewValue(View view, Object data,  
  10.         String textRepresentation) {  
  11.     // TODO Auto-generated method stub  
  12.     if(view instanceof ImageView && data instanceof Bitmap){  
  13.         ImageView i = (ImageView)view;  
  14.         i.setImageBitmap((Bitmap) data);  
  15.         return true;  
  16.     }  
  17.     return false;  
  18. }  
  19. );  
  20.     listView.setAdapter(listAdapter);  
  21.     /*动态跟新ListView*/  
  22.     listAdapter.notifyDataSetChanged();  


 

 

posted @ 2012-09-01 18:47  小何++  阅读(224)  评论(0编辑  收藏  举报