首页 理论教育 如何使用Universal-Image-Loader加载图片

如何使用Universal-Image-Loader加载图片

时间:2023-06-27 理论教育 版权反馈
【摘要】:Universal-Image-Loader可以说是目前使用最广泛的图片开源库之一。Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是为异步图像加载、缓存和显示提供一个可重复使用的仪器。Universal-Image-Loader包含三大组件:DisplayImageOptions、ImageLoader和ImageLoaderConfiguration。Universal-Image-Loader具有如下功能特性。下面是实现过程,完整内容参考本章Android Studio项目:Universal_Image_Loader_Ex-ample。图9-17 使用Universal-Image-Loader.jar库Universal-Image-Loader的使用步骤如下。使用配置参数初始化ImageLoader,代码如下。ImageLoader.getInstance().init;加载图片。主要使用ImageLoader的loadImage()和displayImage()方法,这两个方法都是重载的方法,可以根据需要进行选择。

如何使用Universal-Image-Loader加载图片

Universal-Image-Loader可以说是目前使用最广泛的图片开源库之一。在主流的应用中基本都能看到它的身影,它就像个图片加载守护者,默默地守护着图片加载。

Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是为异步图像加载、缓存和显示提供一个可重复使用的仪器。所以,如果程序里需要这个功能的话,不妨尝试用一用。其中已经封装好了一些类和方法,我们可以直接拿来使用,而不用重复去写。其实,写一个这方面的程序是比较麻烦的,要考虑多线程缓存、内存溢出等很多方面的问题。Universal-Image-Loader包含三大组件:DisplayImageOptions、ImageLoader和ImageLoaderConfiguration。

Universal-Image-Loader具有如下功能特性。

(1)多线程异步加载和显示图片(图片来源于网络、SD卡、assets文件夹、drawable文件夹或新增加载视频缩略图

例如:

978-7-111-58810-8-Chapter09-58.jpg

978-7-111-58810-8-Chapter09-59.jpg

(2)支持通过listener监视加载的过程,可以暂停加载图片,在经常使用的ListView、GridView中,可以设置滑动时暂停加载,停止滑动时加载图片(便于节约流量,在一些优化中可以使用)。

(3)缓存图片至内存时,可以更加高效地工作。

(4)高度可定制化(可以根据自己的需求进行各种配置,如线程池、图片下载器、内存缓存策略等)。

(5)支持图片的内存缓存、SD卡(文件)缓存。

(6)在网络速度较慢时,可以对图片进行加载并设置下载监听。

下面是实现过程,完整内容参考本章Android Studio项目:Universal_Image_Loader_Ex-ample。

要使用Universal-Image-Loader,需要从网上下载Universal-Image-Loader项目,然后编译成库,Universal-Image-Loader项目的下载地址:https://github.com/nostra13/Android-Univer-sal-Image-Loader,将编译好的universal-image-loader-1.9.5.jar文件复制到项目的libs目录下,然后增加为库,如图9-17所示,这样就可以使用Universal-Image-Loader了。

978-7-111-58810-8-Chapter09-60.jpg

图9-17 使用Universal-Image-Loader.jar库

Universal-Image-Loader的使用步骤如下。

(1)创建ImageLoader配置参数,代码如下。

978-7-111-58810-8-Chapter09-61.jpg

当然,也可以自己定制配置,代码如下。

978-7-111-58810-8-Chapter09-62.jpg

978-7-111-58810-8-Chapter09-63.jpg

(2)使用配置参数初始化ImageLoader,代码如下。(www.xing528.com)

ImageLoader.getInstance().init(configuration);

(3)加载图片。主要使用ImageLoader的loadImage()和displayImage()方法,这两个方法都是重载的方法,可以根据需要进行选择。

典型的loadImage方法如下。

978-7-111-58810-8-Chapter09-64.jpg

其中,uri为图片的URL地址,targetImageSize为显示图像的大小,options为显示图像的配置,listener用于图片下载情况的监听,在调用时实现。

实例代码如下。

978-7-111-58810-8-Chapter09-65.jpg

监听器SimpleImageLoadingListener需要实现回调方法onLoadingComplete(),在此方法中

将loadedImage设置到ImageView上。加载结果如图9-18所示。

978-7-111-58810-8-Chapter09-66.jpg

图9-18 loadImage()方法加载网络图

典型的displayImage方法如下。

displayImage(Stringuri,ImageViewimageView,DisplayImageOptions options,)

其中,uri为图片的URL地址,imageView为显示图像的控件,options为显示图像的配置。

实例代码如下。

978-7-111-58810-8-Chapter09-67.jpg

加载结果如图9-19所示。

978-7-111-58810-8-Chapter09-68.jpg

图9-19 displayImage()方法加载网络图像

在项目配置文件app/src/AndroidManifest.xml中添加网络权限和写存储器权限,代码如下。

978-7-111-58810-8-Chapter09-69.jpg

另外,Universal-Image-Loader也可以使用GirdView和ListView加载图片,这样可显示大量的图片,如果希望停止图片的加载且在GridView和ListView停止滑动的时候加载当前界面的图片,也可以使用这个框架来实现,使用方法也很简单,它提供了PauseOnScrollListener这个类来控制ListView和GridView滑动过程中停止加载图片。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈