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

背景

最近换了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();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值