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

来源:互联网 发布:python 分布式计算 编辑:程序博客网 时间:2024/05/16 14:53

背景

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

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


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


常用全局配置总结

ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);//设置下载线程的优先级config.threadPriority(Thread.NORM_PRIORITY - 2);//同一uri地址的图片,解压为两种尺寸的Bitmap,是否允许这两个Bitmap都被缓存config.denyCacheImageMultipleSizesInMemory();//硬盘存储文件名的命名方式//Md5FileNameGenerator//HashCodeFileNameGeneratorconfig.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//WeakMemoryCacheconfig.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() {@Overridepublic Bitmap process(Bitmap bitmap) {return bitmap;}})//显示前处理图片.postProcessor(new BitmapProcessor() {@Overridepublic Bitmap process(Bitmap bitmap) {return bitmap;}}).build();


3 0
原创粉丝点击