ImageLoader框架实现的图片缓存

来源:互联网 发布:c语言定义函数 编辑:程序博客网 时间:2024/06/05 15:20
  一、需要在XML清单文件中application里面配置android:name=".MyImageLoader"  二、需要添加一个框架,在project Structure 选中当前工程点击Dependencies ,有上角的加号,选择第一个,然后搜索universal-image-loader:1.9.5 
public class MyImageLoader extends Application {    @Override    public void onCreate() {        super.onCreate();        //缓存文件夹的路径        File files = StorageUtils.getOwnCacheDirectory(this, Environment.getDownloadCacheDirectory().getPath());        //        ImageLoaderConfiguration builder = new ImageLoaderConfiguration.Builder(this)                .threadPoolSize(3)//线程池内加载的数量                .memoryCache(new LruMemoryCache(2 * 1024 * 1024))//可以通过自己的内存缓存实现                .diskCache(new UnlimitedDiskCache(files))//可以自定义路径                .diskCacheSize(50 * 1024 * 1024)//sd卡缓存的最大值                .diskCacheFileCount(100)//可以缓存文件的数量                //为使用HASHCODE对URL进行加密命名,还可以 QWEDRFTGYHJIKOLP;对Md5加密                .diskCacheFileNameGenerator(new Md5FileNameGenerator())                .build();//开始构建        //配置缓存选项        ImageLoader.getInstance().init(builder);    }}       //这里是适配器配置       public class MyAdapter extends BaseAdapter {    private Context context;    private List<Bean.ResultBean.DataBean> list;    private ImageView onimg;    private final DisplayImageOptions builder;    private viewHolder holder;    private TextView ontv;    public MyAdapter(Context context, List<Bean.ResultBean.DataBean> list){        this.context = context;        this.list = list;        //图片缓存设置        builder = new DisplayImageOptions.Builder()                .showImageOnFail(R.mipmap.ic_launcher)                .showImageOnLoading(R.mipmap.ic_launcher)                .cacheOnDisk(true)                .cacheInMemory(true)                .build();    }    @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) {        if (convertView == null){            convertView = View.inflate(context,R.layout.list_main,null);            holder = new viewHolder();            holder.onimg = (ImageView) convertView.findViewById(img);            holder.ontv = (TextView) convertView.findViewById(R.id.ontv);        }        holder.ontv.setText(list.get(position).getTitle());        ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(0),holder.onimg,builder);        return convertView;    }    class viewHolder{        private TextView ontv;        private ImageView onimg;    }}
0 0
原创粉丝点击