Image-Universal-Loader的使用和问题

本文介绍如何正确配置并使用Image-Universal-Loader框架,解决常见的初始化错误问题,并提供了一个详细的步骤指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Image-Universal-Loader是一个不错的图片框架,我们在使用中不乏遇到一些问题

说一下我遇到的问题

我们在按照步骤完成以后,使用的时候可能会遇到

ImageLoader must be init with configuration before using

这个问题

这是因为没有初始化出现的问题 

但是我们在全局中明明初始化过的,为什么会报初始化有问题呢


我们再来一步一步做一下:

1、导入开源框架的依赖:

implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'


2、设置全局配置,进行初始化:

        //自定义sd卡缓存目录 1.android默认cache-app被卸载时,缓存的目录一并被删除    
//        File cachefile=getExternalCacheDir();
        File cachefile= new File(Environment.getExternalStorageDirectory().getPath()+"/images");
        //1.初使化
        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(400, 700)//缓存图片最大的长和宽
                .threadPoolSize(3)//线程池的数量
                .threadPriority(4)
                .memoryCacheSize(20*1024*1024)//设置内存缓存区大小
                .diskCacheSize(80*1024*1024)//设置sd卡缓存区大小
                .diskCache(new UnlimitedDiscCache(cachefile))//自定义sd卡缓存目录
                .writeDebugLogs()//打印日志内容
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
                .build();
        ImageLoader.getInstance().init(configuration);


2、在工具类中配置,方便日后使用



        //2.需要创建DisplayImageOption类 两种 1,使用默认设置 2.自定义设置
        DisplayImageOptions options=new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
                .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
                .build();


3、然后就可以直接下载图片了

        ImageLoader.getInstance().displayImage(url,img,options);


问题就出在下载图片这里,有的时候可能会出刚刚说的问题

在创建完成之后写一个初始化

ImageLoader imageLoader = ImageLoader.getInstance();

imageLoader.init(ImageLoaderConfiguration.createDefault(context));
 ImageLoader.getInstance().displayImage(url,img,options);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值