初识Universal-Image-Loader

Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。

(1).使用多线程加载图片
(2).灵活配置ImageLoader的基本参数,包括线程数、缓存方式、图片显示选项等;
(3).图片异步加载缓存机制,包括内存缓存及SDCard缓存;
(4).采用监听器监听图片加载过程及相应事件的处理;
(5).配置加载的图片显示选项,比如图片的圆角处理及渐变动画。

从github上的介绍看,作者已经停止更新了UIL [27.11.2011 - 27.11.2015]

下面从最新代码的结构大概了解一下UIL。粗略一看代码真不少,并且jar也有158K
universal-image-loader-1.9.5.jar
但是,看看报名和类名也能够清晰的知道UIL的结构:
截图1:
初识Universal-Image-Loader_第1张图片
上面从截图中的包名可以看出,这些包都是负责缓存相关,并且分为 diskcache 和 memorycache。可以看到有.impl包,猜测一下不带.impl包是下面的文件应该是对应的接口。
这里写图片描述
单独看看这个包里的三个类,从名字上看LimitedAgeDiskCache与UnlimitedDiskCache是相反的,一个是有限制的一个是无限制的,猜测一下就知道这两个是不同的缓存方案,看过代码就知道其实这个包里的三个类分别提供了三种缓存方案,具体以后再分析。

同样的思能看其他几个包里的类,都是提供了多种方案来实现。这样的话,UIL能够适用于更多的场景。

截图2:
初识Universal-Image-Loader_第2张图片
从包名看出这是UIL的核心。。。666
具体的类我也还没有仔细看,但是看包名就差不多了的,同样的有的功能也是提供了多套解决方案,com.nostra13.universalimageloader.core.display提现的尤为明显

assist:辅助类,记录一些辅助信息
deque:任务队列,也是提供了多个方案
decode:图片解码
display:图片展示,提供多种个性展示:圆角、渐显、圆图等
download:图片下载
imageaware:图片的封装

截图3:
初识Universal-Image-Loader_第3张图片
这个图里显示的就是些回调接口以及工具类

其实,数据的使用也就是这么些,缓存、请求队列、下载、处理。从volley可以很清楚的看到这个逻辑关系,当然我也认为volley的代码和结构更精炼。当然UIL则是把图片的使用集大成者,基本上一个框架都集合完了,在项目中使用或者单纯的学习,都是不错的。只是代码量稍大,只有慢慢吃透!

你可能感兴趣的:(android,UIL,Image-Load)