`

Android-Universal-Image-Loader介绍

 
阅读更多

Android-Universal-Image-Loader是Android是用的比较多的一款开源的图片下载库,先看看GitHub上的介绍。

 

资源类型:

"http://site.com/image.png" // from Web

"file:///mnt/sdcard/image.png" // from SD card

"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)

"content://media/external/images/media/13" // from content provider

"content://media/external/video/media/13" // from content provider (video thumbnail)

"assets://image.png" // from assets

"drawable://" + R.drawable.img // from drawables (non-9patch images)

 

常用方法:

// Get singleton instance

ImageLoader imageLoader = ImageLoader.getInstance();

 


//在imageView显示资源中的图片

imageLoader.displayImage(imageUri, imageView);


//下载资源中的图片

imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() {

    @Override

    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

        // Do whatever you want with Bitmap

    }

});

 


//异步下载资源

Bitmap bmp = imageLoader.loadImageSync(imageUri);

 


//监听下载进度

imageLoader.displayImage(imageUri, imageView, options, new ImageLoadingListener() {

    @Override

    public void onLoadingStarted(String imageUri, View view) {

        ...

    }

    @Override

    public void onLoadingFailed(String imageUri, View view, FailReason failReason) {

        ...

    }

    @Override

    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

        ...

    }

    @Override

    public void onLoadingCancelled(String imageUri, View view) {

        ...

    }

}, new ImageLoadingProgressListener() {

    @Override

    public void onProgressUpdate(String imageUri, View view, int current, int total) {

        ...

    }

});

 


//下载图片后转化为指定宽高

ImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size

imageLoader.loadImage(imageUri, targetSize, options, new SimpleImageLoadingListener() {

    @Override

    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

        // Do whatever you want with Bitmap

    }

});

 


//异步下载

ImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size

Bitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, options);

 


//缓存相关的方法

DiskCacheUtils.findInCache(String imageUri, DiskCache diskCache)

DiskCacheUtils.removeFromCache(String imageUri, DiskCache diskCache)

 

工作流程:

常用配置:

全局初始化此配置项

ImageLoaderConfiguration config = new ImageLoaderConfiguration  

.Builder(context)  

//线程池内加载的数量

.threadPoolSize(3)  

.threadPriority(Thread.NORM_PRIORITY - 2)

.tasksProcessingOrder(QueueProcessingType.LIFO)

//同一张图片不同大小内存只缓存一张

.denyCacheImageMultipleSizesInMemory() 

//内存缓存的实现memory.impl包中提供多种实现方式

.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))

.memoryCacheSize(2 * 1024 * 1024)    

//内存缓存文件的最大长宽

.memoryCacheExtraOptions(480, 800)

//缓存的文件数量

.discCacheFileCount(100)

.discCacheSize(50 * 1024 * 1024)

//文件缓存的文件名生成方式  

.discCacheFileNameGenerator(new Md5FileNameGenerator())

//文件缓存路径

.discCache(new UnlimitedDiscCache(cacheDir))

//默认的Image显示配置

 .defaultDisplayImageOptions(DisplayImageOptions.createSimple())

//设置下载器 connectTimeout (5 s),readTimeout (30 s)超时时间

 .imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000))

//仅测环境可配置

 .writeDebugLogs()  

 .build();//开始构建

 

ImageLoader.getInstance().init(config);

文件缓存的目录可以通过ImageLoader的StorageUtils获取

File cacheDir = StorageUtils.getOwnCacheDirectory(argContext, "ImgCache");

以上配置都有默认配置:

ImageLoaderConfiguration.ImageLoaderConfiguration.createDefault()

 

imageLoader显示图片配置项

DisplayImageOptions options;  

options = new DisplayImageOptions.Builder()

//设置图片在下载期间显示的图片  

.showImageOnLoading(R.drawable.ic_launcher)

//设置图片Uri为空或是错误的时候显示的图片

.showImageForEmptyUri(R.drawable.ic_launcher)

//设置图片加载/解码过程中错误时候显示的图片

.showImageOnFail(R.drawable.ic_launcher)

//设置下载的图片是否缓存在内存中

.cacheInMemory(true)

//设置下载的图片是否缓存在SD卡中  

.cacheOnDisc(true)

//是否考虑JPEG图像EXIF参数(旋转,翻转)

.considerExifParams(true)

//设置图片以如何的编码方式显示

.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)

//设置图片的解码类型

.bitmapConfig(Bitmap.Config.RGB_565)

//设置图片的解码配置

.decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)

//int delayInMillis为你设置的下载前的延迟时间

.delayBeforeLoading(int delayInMillis)

//设置图片加入缓存前,对bitmap进行设置  

//.preProcessor(BitmapProcessor preProcessor)

//设置图片在下载前是否重置,复位

.resetViewBeforeLoading(true)  

//是否设置为圆角,弧度为多少

.displayer(new RoundedBitmapDisplayer(20))

//是否图片加载好后渐入的动画时间

.displayer(new FadeInBitmapDisplayer(100))  

.build();//构建完成 

 

设置图片的缩放方式

imageScaleType(ImageScaleType imageScaleType)

              EXACTLY :图像将完全按比例缩小的目标大小

              EXACTLY_STRETCHED:图片会缩放到目标大小完全

              IN_SAMPLE_INT:图像将被二次采样的整数倍

              IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小

              NONE:图片不会调整

 

设置图片的显示效果

displayer(BitmapDisplayer displayer)

            RoundedBitmapDisplayer(int roundPixels)设置圆角图片

            FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间

   SimpleBitmapDisplayer()正常显示一张图片

 

分享到:
评论

相关推荐

    Android-Universal-Image-Loader Demo和jar包

    4. **universal-image-loader-1.9.3.jar** 这是Android-Universal-Image-Loader的核心库文件,包含了所有必要的类和方法。开发者只需将这个jar包添加到项目的libs目录下,并在项目中引用,即可开始使用UIL的功能。 ...

    Android-Universal-Image-Loader 图片异步加载类库的使用

    **Android-Universal-Image-Loader 图片异步加载库详解** 在Android开发中,图片的加载和显示是一项常见的任务,特别是在处理大量图片或者网络图片时,如何高效、流畅地加载和展示图片至关重要。为此,开发者社区...

    Android-Universal-Image-Loader Demo

    **Android-Universal-Image-Loader (UIL) 是一个强大的图片加载、缓存和显示库,专为Android平台设计。这个库被广泛使用,因为它能够高效地处理图片资源,避免内存溢出,同时支持多种加载策略和显示选项。** 在...

    Android-Universal-Image-Loader

    通过以上介绍,我们可以看到Android-Universal-Image-Loader是如何帮助开发者高效、安全地处理图片加载问题的。它不仅解决了Android应用中常见的OOM问题,还提供了丰富的定制化选项,使得开发者可以根据项目需求进行...

    Android-Universal-Image-Loader-master

    《Android Universal Image Loader详解:高效异步加载与缓存机制》 在移动应用开发中,尤其是在Android平台上,图片加载和管理是一项重要的任务。高效的图片加载不仅能够提升用户体验,还能优化应用性能,避免内存...

    Android-Universal-Image-Loader jar包

    `universal-image-loader-1.9.5.jar` 文件是该库的特定版本,包含所有必要的类和方法,供开发者在项目中引用。只需将此jar包添加到项目的lib目录下,并在代码中引入相关类和方法,即可开始使用Android-Universal-...

    Android-Universal-Image-Loader使用详解

    Android-Universal-Image-Loader(UIL)是一款广泛应用于Android开发中的图片加载库,它提供了强大的功能,包括异步加载、缓存策略、错误处理以及多种显示选项,使得开发者能够更高效、灵活地处理应用程序中的图像...

    Android-Universal-Image-Loader-master.zip

    《Android-Universal-Image-Loader:高效图片加载与缓存框架解析》 在移动应用开发中,图片加载和缓存是至关重要的环节,特别是在Android平台上,由于设备性能和网络环境的差异,良好的图片管理策略能显著提升用户...

    Android-Universal-Image-Loader 图片缓存Android-Universal-Image-Loader-master

    **Android-Universal-Image-Loader** 是一个广泛使用的开源库,专为Android应用程序设计,用于高效、异步地加载和缓存网络、本地存储或资源中的图像。它由俄罗斯开发者Denis Zholos创建,旨在解决Android应用在处理...

    Android---universal-image-loader应用 异步加载图片并缓存

    总之,`Universal Image Loader`是Android开发中的利器,通过其强大的功能和高度的可定制性,可以帮助开发者高效地处理图片加载和缓存问题,提升用户体验。在实际开发中,结合`UniversalImageLoader`的源代码学习,...

    Android-Universal-Image-Loader示例

    "Android-Universal-Image-Loader"库就是一个强大的解决方案,它专为Android平台设计,用于实现图片的异步加载、缓存和显示,从而提高应用性能并优化用户体验。这个库由Sergey Tarasevich开发,自2011年以来,已经...

    Android-Universal-Image-Loader开源项目的简要说明及使用实例

    **Android-Universal-Image-Loader** 是一个强大的开源库,专为Android应用设计,用于高效、灵活地加载、缓存和显示网络上的图片。这个库由Sergey Tarasevich开发,它解决了Android应用程序在处理大量图片时可能出现...

    Android-Universal-Image-Loader-1.9.5

    在`Android-Universal-Image-Loader-master`中,我们可以看到项目的源代码结构,包括核心的`library`模块和示例应用`sample`模块。通过对源码的阅读和分析,开发者可以深入理解其工作原理,进一步优化使用。 五、与...

Global site tag (gtag.js) - Google Analytics