android studio使用imageLoader加载图片到listview上

来源:互联网 发布:怎么优化宝贝标题贴吧 编辑:程序博客网 时间:2024/05/16 01:36

一个小的demo,对于imageloader不了解的可以点击
http://blog.csdn.net/anny_lin/article/details/47058545下查看
废话不说看代码~
自定义MyApplication

/** * Created by 不告诉你 on 15/7/25. */public class MyApplictation extends Application {    @Override    public void onCreate() {        super.onCreate();        //创建默认的imageloader配置函数        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)                .memoryCacheExtraOptions(500,500)//缓存文件最大宽高                .threadPoolSize(3) //线程池的加载数量                .threadPriority(Thread.NORM_PRIORITY-2)//优先级定义                .memoryCacheSize(2*1024*1024)                .diskCacheSize(50*1024*1024) //50mb sd卡(本地)缓存最大值                .tasksProcessingOrder(QueueProcessingType.LIFO)                .imageDownloader(new BaseImageDownloader(this,5*100,30*1000))                .denyCacheImageMultipleSizesInMemory()                .writeDebugLogs()                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密                .build();        //初始化imageloader        ImageLoader.getInstance().init(configuration);    }}

主activity:

public class MainActivity extends AppCompatActivity {    private  String imageUrl="http://pic.nipic.com/2007-11-09/2007119121849495_2.jpg";    private  List<String>  list=null;    private ListView listView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView= (ListView) findViewById(R.id.listview);    }    @Override    protected void onStart() {        super.onStart();        list=new ArrayList<String>();        for (int i=0;i<30;i++)            list.add(imageUrl);        Myadapter myadapter=new Myadapter(this,list);        listView.setAdapter(myadapter);    }}

listview的适配器:

/** * Created by 不告诉你 on 15/7/25. */public class Myadapter extends BaseAdapter {    private Context context;    private List<String> list;    public Myadapter(Context context, List<String> list) {        this.context = context;        this.list = list;        initOptions();    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int position) {        return list.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder viewHolder=null;        if (convertView==null){            viewHolder=new ViewHolder();            convertView= LayoutInflater.from(context).inflate(R.layout.item_list,parent,false);            viewHolder.imageView= (ImageView) convertView.findViewById(R.id.image);            convertView.setTag(viewHolder);        }else {            viewHolder= (ViewHolder) convertView.getTag();        }        //执行加载动作        ImageLoader.getInstance().displayImage(list.get(position),viewHolder.imageView,options);        return convertView;    }    static class ViewHolder{        ImageView imageView;    }    //初始化options    private  DisplayImageOptions options;    private  void initOptions(){        options=new DisplayImageOptions.Builder()                .showImageOnFail(R.drawable.abc_dialog_material_background_dark)                .showImageOnLoading(R.drawable.abc_btn_check_material)                .cacheInMemory(true)                .cacheOnDisk(true)                .displayer(new RoundedBitmapDisplayer(30)).build();    }}

结果:这里写图片描述

就是那么的容易~

0 0