1. 介绍
在上一篇ImageLoader源码分析对ImageLoader整体流程进行了分析,中间也对ImageLoade提供的配置给予了截图显示,但是不利于查找,此篇专门用来说明ImageLoader的配置。本文以universal-image-loader-1.9.5源码基础,其中Deprecated了的方法一般都会有替代方法,所以这些过期方法没有在配置列表中给出。
2. 配置大全
ImageLoader的配置分为DisplayImageOptions类和ImageLoaderConfiguration类的配置
DisplayImageOptions配置
@showImageOnLoading(int imageRes)
target文件正在加载的时候,View显示的图片@showImageForEmptyUri(int imageRes)
当target文件地址为空的时候,View显示的图片@showImageOnFail(int imageRes)
当ImageLoader加载target文件失败的时候,View显示的图片@resetViewBeforeLoading(boolean resetViewBeforeLoading)
在ImageLoader要加载target文件之前,View的是否要被reset(reset即setImageDrawable(null))@cacheInMemory(boolean cacheInMemory)
是否选择要内存缓存@cacheOnDisk(boolean cacheOnDisk)
是否选择要磁盘缓存@imageScaleType(ImageScaleType imageScaleType)
图片的ScaleType,ImageLoader会根据此配置计算scale,对加载的原始图片按照scale比例进行缩放@bitmapConfig(Bitmap.Config bitmapConfig)
配置图片文件的config@decodingOptions(Options decodingOptions)
此方法作用和imageScaleType类似,会影响scale的计算@delayBeforeLoading(int delayInMillis)
加载任务之前的delay,以毫秒为单位@extraForDownloader(Object extra)
指定ImageLoader加载原始文件的下载器,默认是BaseImageDownloader类@considerExifParams(boolean considerExifParams)
是否读取exif文件属性信息rotate, flip,用于对图片进行scale和rotate@preProcessor(BitmapProcessor preProcessor)
在bitmap被缓存进内存前,利用BitmapProcessor对bitmap进行操作,可以影响到内存缓存行为@postProcessor(BitmapProcessor postProcessor)
在bitmap被缓存进内存后,利用BitmapProcessor对bitmap进行操作,主要用于后续的显示任务@displayer(BitmapDisplayer displayer)
bitmap外形样式,圆的,带边框修饰的等等@syncLoading(boolean isSyncLoading)
同步加载还是异步加载,默认是异步加载@handler(Handler handler)
加载事件传递使用的HandlerImageLoaderConfiguration配置
@memoryCacheExtraOptions(int maxImageWidthForMemoryCache, int maxImageHeightForMemoryCache)
内存缓存图片的宽高限制,此方法和DisplayImageOptions中的imageScaleType都会影响到scale的计算。@diskCacheExtraOptions(int maxImageWidthForDiskCache, int maxImageHeightForDiskCache,
BitmapProcessor processorForDiskCache)
磁盘缓存图片的宽高限制@taskExecutor(Executor executor)
自定义加载任务需要的线程池@threadPoolSize(int threadPoolSize)
指定显示任务线程池线程数目@threadPriority(int threadPriority)
指定加载任务线程的线程优先级@memoryCacheSize(int memoryCacheSize)
指定内存缓存容量上限,默认为ActivityManager.getMemoryClass * 1 / 8@memoryCacheSizePercentage(int availableMemoryPercent)
指定内存缓存容量占虚拟机最大maxMemory(Runtime.getRuntime().maxMemory())的百分比,这里availableMemoryPercent取值范围为0-100@memoryCache(MemoryCache memoryCache)
自定义内存缓存数据结构类@diskCacheSize(int maxCacheSize)
指定磁盘缓存总容量,以bytes为单位@diskCacheFileCount(int maxFileCount)
指定磁盘缓存文件个数@diskCacheFileNameGenerator(FileNameGenerator fileNameGenerator)
自定义磁盘缓存文件的命名规则,默认使用md5命名@diskCache(DiskCache diskCache)
自定义磁盘缓存数据结构类@imageDecoder(ImageDecoder imageDecoder)
自定义bitmap的decoder操作,可以影响到磁盘缓存文件的宽高。界面比较卡的时候,可以自定义该选项