ImageLoader框架实现的图片缓存

  一、需要在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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值