您的位置:首页 > 移动开发 > Android开发

Android知识总结:Universal-Imageloader学习笔记1 基本功能与配置

2015-11-28 18:55 447 查看

背景

最近换了ImageLoader作为图片缓存工具,在使用时,发现这个框架其实可以实现很多图片处理的功能。在阅读源码时也学习到了不少程序设计方面的知识。在实际开发

时,往往自己手中资源很多,很多功能只是自己不了解,浪费了大量时间去寻找其他框架。

      今天主要总结了一下ImageLoader的一些基本功能及其配置方式,现在总结如下。

常用全局配置总结

ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
//设置下载线程的优先级
config.threadPriority(Thread.NORM_PRIORITY - 2);
//同一uri地址的图片,解压为两种尺寸的Bitmap,是否允许这两个Bitmap都被缓存
config.denyCacheImageMultipleSizesInMemory();
//硬盘存储文件名的命名方式
//Md5FileNameGenerator
//HashCodeFileNameGenerator
config.diskCacheFileNameGenerator(new Md5FileNameGenerator());
//硬盘空间大小
config.diskCacheSize(50 * 1024 * 1024); // 50 MiB
//处理下载和显示线程的队列类型   先进先出 先进后出
config.tasksProcessingOrder(QueueProcessingType.FIFO);
//写错误日志
config.writeDebugLogs(); // Remove for release app
//***********************以下内容可以不进行设置***********************************
//为所有用到ImageLoader的地方设置下载选项  如果我们需要在不同页面设置不同种类的图,
//则在每个页面中单独进行设置
//		DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder().
//				cacheInMemory(true).
//				cacheOnDisk(true).
//				bitmapConfig(Bitmap.Config.RGB_565).
//				imageScaleType(ImageScaleType.IN_SAMPLE_INT).
//				build();
//		config.defaultDisplayImageOptions(defaultOptions);

//设置硬盘缓存路径和存储结构
//UnlimitedDiskCache        无限制存储         默认存储 在DefaultConfigurationFactory设置
//LimitedAgeDiskCache       有超时的存储方式
String catchPath = context.getExternalCacheDir().getPath().toString() + "/image";
config.diskCache(new UnlimitedDiskCache(new File(catchPath)));

//设置内存缓存结构
//FIFOLimitedMemoryCache
//FuzzyKeyMemoryCache
//LargestLimitedMemoryCache
//LimitedAgeMemoryCache
//LRULimitedMemoryCache
//LruMemoryCache             默认缓存
//UsingFreqLimitedMemoryCache
//WeakMemoryCache
config.memoryCache(new LruMemoryCache(1024 * 1024));

//下载器
//BaseImageDownloader  默认
//可以使用OkHttp的底层
config.imageDownloader(new OkHttpImageDownloader(context, new OkHttpClient()));

//设定缓存文件的数量
//config.diskCacheFileCount(0);

//可以设置线程及线程池相关

//可以手动设置加载线程,也可以直接由DefaultConfigurationFractory创建默认
//config.taskExecutor()                    下载线程
//config.taskExecutorForCachedImages()     缓存线程
//config.tasksProcessingOrder()            图片处理线程

//设置解码器  解码器用于将图片解压成相应的大小
//用到ImageDecodingInfo参数,用于设置解压的参数
//BaseImageDecoder    默认
//config.imageDecoder();

// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config.build());

下载option配置总结

options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub)         //加载时的默认图片
.showImageForEmptyUri(R.drawable.ic_empty)      //uri为空时加载的图片
.showImageOnFail(R.drawable.ic_error)           //网络错误时加载的图片
.cacheInMemory(true)                             //是否缓存到内存
.cacheOnDisk(true)                               //是否缓存到硬盘
.considerExifParams(true)                        //是否使用Exif信息 (Exif信息可以理解为JPEG图中加入相机相关信息)

//添加显示的图片形状
.displayer(new RoundedVignetteBitmapDisplayer(30,10))   //CircleBitmapDisplayer   圆形
//FadeInBitmapDisplayer   逐渐出现
//RoundedBitmapDisplayer  圆边
//RoundedVignetteBitmapDisplayer  圆边  与外框有一层阴影
//SimpleBitmapDisplayer   没变化
//**************************以下选项可以直接默认**********************************
//图片拉伸模式
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)               //NONE
//NONE_SAFE             如果图片过大,则缩小,适应外部容器
//IN_SAMPLE_POWER_OF_2  如果图片过大,隔点采样,直到适应
//IN_SAMPLE_INT         整数采样
//EXACTLY               将图片完整地放入外部容器
//将图片完整地放入外部容器,节约内存
//设置解码的options,用于配置BitmapFactory的参数
.decodingOptions(new BitmapFactory.Options())
//设置延时加载,默认不延时
.delayBeforeLoading(30)
//为ImageDownLoader设置辅助参数  ImageDownloader#getStream(String, Object)
.extraForDownloader(null)
//为ImageLoadingListener* listener设置Handler
.handler(null)

//硬盘解码完毕时进行预处理图片
.preProcessor(new BitmapProcessor() {
@Override
public Bitmap process(Bitmap bitmap) {
return bitmap;
}
})
//显示前处理图片
.postProcessor(new BitmapProcessor() {
@Override
public Bitmap process(Bitmap bitmap) {
return bitmap;
}
})
.build();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: