开源库ImageLoader的使用笔记

首先在app/build下配置:

compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'

配置:
1 ---------------------------------------------------------
//使用ImageLoader进行图片加载的时候,先要实例化ImageLoader  --之后进行显示的图片的各种格式DisplayImageOptions的设置
imageLoader = ImageLoader.getInstance();

private void initImageLoader(Context context) {
//缓存文件目录
File cacheDir = StorageUtils.getOwnCacheDirectory(context, "imageloader/Cache");
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.memoryCacheExtraOptions(480,800)//max width, max height,即保存的每个缓存文件的最大长宽
.threadPoolSize(3)//线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY-2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
.memoryCache(new UsingFreqLimitedMemoryCache(2*1024*1024))//你可以通过自己的内存缓存实现
.memoryCacheSize(2*1024*1024)//内存缓存的最大值
.diskCacheSize(50*1024*1024) //50Mb sd卡(本地)缓存的最大值
.tasksProcessingOrder(QueueProcessingType.LIFO)
//由原先的discCache - > diskCache
.diskCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
.imageDownloader(new BaseImageDownloader(context,5*1000,30*1000))// connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() //Remove for release app
.build();
//全局初始化此配置
ImageLoader.getInstance().init(config);
}
2 -------------------------------------------------------------------------------

private DisplayImageOptions options; //设置图片显示相关参数
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub)//设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_empty)//设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.ic_error)//设置图片加载或是解码过程中发生错误显示的图片
.cacheInMemory(true)//设置下载的图片是否缓存在内存中
.cacheOnDisk(true)//设置下载的图片是否缓存在SD卡
//.displayer(new RoundedBitmapDisplayer(50))//设置成圆角图片
.build();

/**
* imageUrl 图片的Url地址 imageView 承载图片的ImageView控件 options
* DisplayImageOptions配置文件
*
* ImageLoader.getInstance().displayImage(imageUrl, imageView,options); imageUrl代表图片的URL地址,
* imageView代表承载图片的IMAGEVIEW控件 , options代表DisplayImageOptions配置文件
*
*/
AppContext.getAppContext().getImageLoader().displayImage(
AppConfig.PROJECT + this.modelList.get(position).getImage(), holder.ivImg, options);
原文地址:https://www.cnblogs.com/banzhuan/p/6734020.html