使用SimpleAdapter加载sdcard图片

来源:互联网 发布:mysql 转换字符串 编辑:程序博客网 时间:2024/05/29 09:02

纠结了好多天,也在网上找了好多类似的方法,但代码不全,本人菜鸟一枚,始终不能实现本地图片的加载,后来才发现是Bitmap的问题,现粘出完整代码仅供参考。


package com.example.save_photo;



import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleAdapter.ViewBinder;
public class Sava_photo extends Activity {
private SimpleAdapter sim;
private ListView lv;
private String []path=new String[]{"/sdcard/Picture/IM.jpg","/sdcard/Picture/I.jpg",
"/sdcard/Picture/IM.jpg","/sdcard/Picture/I.jpg","/sdcard/Picture/IM.jpg"
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sava_photo);
lv = (ListView) findViewById(R.id.listView1);
List<Map<String,Object>> arr = new ArrayList<Map<String,Object>>();


for(int i=0;i<path.length;i++){
HashMap<String, Object>hash = new HashMap<String, Object>();
Bitmap bm = BitmapFactory.decodeFile(path[i]);
hash.put("img",bm);

arr.add(hash);}


sim = new SimpleAdapter(this, arr, R.layout.list,
new String[] { "img" },
new int[] { R.id.imageView1 });
sim.setViewBinder(new ViewBinder(){  
       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;  
       }               
      });  

lv.setAdapter(sim);


}}
0 0
原创粉丝点击