该开源库是一个用于图像加载处理的项目,项目的下载地址为:
https://github.com/nostra13/Android-Universal-Image-Loader
该库的特征有:
- 多线程图片加载(异步或者同步)
- 高度定制图片加载的相关配置(例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置)
- 支持图片的内存缓存,文件系统缓存或者SD卡缓存
- 可以监听加载的过程(包括下载过程)
下面开始简单讲介绍该库的使用:
1.首先在上面提供的地址中下载库文件
2.在android studio的项目中导入jar包:我下载下来的文件有三个jar包分别是,universal-image-loader-1.9.5.jar,universal-image-loader-1.9.5-javadoc.jar,universal-image-loader-1.9.5-sources.jar,只需要导入第一个universal-image-loader-1.9.5.jar包。
3.在项目启动的时候初始化ImageLoader的配置。在这里编写了一个BaseApplication 继承自Application。在onCreate()函数中初始化ImageLoader相关配置:、
//在oncreate函数中调用
Context context=getApplicationContext();
init(context);
//init函数
public void init(Context context){
//设置缓存的目录
File cacheDir= StorageUtils.getOwnCacheDirectory(context,"imageLoader/Cache");
ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(context)
.memoryCacheExtraOptions(400,400)//保存为文件的最大宽高
.threadPoolSize(3)//线程池加载数
.threadPriority(Thread.NORM_PRIORITY-2)//设置线程的优先级
.denyCacheImageMultipleSizesInMemory()//不缓存不同大小的同一图像
.memoryCache(new UsingFreqLimitedMemoryCache(2*1024*1024))//缓存的最大字节
// .memoryCacheSize(2*1024*1024)
.diskCacheSize(50*1024*1024)
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())//保存文件名用hash加密
// .diskCacheFileNameGenerator(new Md5FileNameGenerator())//用MD5加