UIL除了唯一一次的全局配置之外,在每次提交一个图片显示任务时,都可以定制等多的选项。当然,如果不进行定制的话,将采用全局配置中的默认显示选项。
使用
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(com.ylf.uil.R.mipmap.ic_launcher)//图片加载期间的占位图,优先
.showImageOnLoading(Drawable.createFromPath(""))//图片加载期间的占位图
.showImageForEmptyUri(com.ylf.uil.R.mipmap.ic_launcher)//图片的URI为NULL或者空字符串,优先
.showImageForEmptyUri(Drawable.createFromPath(""))//图片的URI为NULL或者空字符串
.showImageOnFail(com.ylf.uil.R.mipmap.ic_launcher)//图片加载失败时的占位图,优先
.showImageOnFail(Drawable.createFromPath(""))//图片加载失败时的占位图
.resetViewBeforeLoading(true)//图片开始加载之前,是否重置为NULL
.cacheInMemory(true)//加载到的图片是否缓存到内存
.cacheOnDisk(true)//加载到的图片是否缓存到硬盘
//解码图片为Bitmap时,定义了缩放尺寸时使用此参数,默认值:IN_SAMPLE_POWER_OF_2
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
.bitmapConfig(Bitmap.Config.ARGB_8888)//为图片解码时设置Bitmap.Config,默认值:ARGB_8888
/**
* 注意:inSampleSize不被考虑,类库根据imageScaleType计算合适的采样率;
* 注意:和bitmapConfig重叠???
*/
.decodingOptions(new BitmapFactory.Options())
.delayBeforeLoading(1000)//开始图片加载任务之前的延迟时间,默认无延迟
/**
* 设置辅助对象,将被传递给ImageDownloader.getStream()
*/
.extraForDownloader(new ImageDownloader() {
@Override
public InputStream getStream(String imageUri, Object extra) throws IOException {
return null;
}
})
.considerExifParams(true)//是否考虑JPEG的 可交换图像文件 的参数(旋转,翻转)
/**
* 被缓存到内存之前处理图片
*/
.preProcessor(new BitmapProcessor() {
@Override
public Bitmap process(Bitmap bitmap) {
return null;
}
})
/**
* 已缓存到内存中的图片,在显示之前处理图片
*/
.postProcessor(new BitmapProcessor() {
@Override
public Bitmap process(Bitmap bitmap) {
return null;
}
})
/**
* 为图片加载任务设置显示器
*/
.displayer(new BitmapDisplayer() {
@Override
public void display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom) {
}
})
.handler(new Handler())//设置自定义Handler,用来显示图片和出发监听器事件ImageLoadingListener
.build();
ImageLoader.getInstance().displayImage(imageView, uri, imageOptions);
未完待续