一、ImageLaoder介绍
<< Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用
<<ImageLoader的设计及优点
设计流程:
ImageLoader收到展示和加载图片的任务,并交给ImageLoaderEngine(创建任务,并进行任务调度)分配到具体的线程池去完成,任务通过 Cache (本地缓存)及 ImageDownloader (从网络获取图片)获取图片,中间可能经过 BitmapProcessor(图片处理器) 和 ImageDecoder (图片解码)处理,最终转换为Bitmap 交给 BitmapDisplayer 在 ImageAware 中显示。
注:其中 Cache 分为 MemoryCache(内存缓存) 和 DiskCache(硬盘缓存) 两部分。
:Processor 资源(图片)处理器,负责处理资源,比如旋转、压缩、截取等。
二、Picasso介绍
>> picasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能
Picasso不仅实现了图片异步加载的功能,还解决了android中加载图片时需要解决的一些常见问题:
1.在adapter中需要取消已经不在视野范围的ImageView图片资源的加载,否则会导致图片错位,Picasso已经解决了这个问题。
2.使用复杂的图片压缩转换来尽可能的减少内存消耗
3.自带内存和硬盘二级缓存功能
>>Picasso设计与流程设计
Picasso 收到加载及显示图片的任务,创建 Request 并将它交给 Dispatcher,Dispatcher 分发任务到具体 RequestHandler,任务通过 MemoryCache 及 Handler(数据获取接口) 获取图片,图片获取成功后通过 PicassoDrawable 显示到 Target 中。
注:Dispatcher 负责分发和处理 Action,包括提交、暂停、继续、取消、网络状态变化、重试等等。
三、Glide简介
Glide是一个高效、开源、 Android设备上的媒体管理框架,Glide具有获取、解码和展示视频剧照、图片、动画等功能,它还有灵活的API,这些API使开发者能够将Glide应用在几乎任何网络协议栈里。创建Glide的主要目的有两个,一个是实现平滑的图片列表滚动效果(滚动流畅),另一个是支持远程图片的获取、大小调整和展示
>>特点
<<Glide设计与流程
简单的讲就是 Glide 收到加载及显示资源的任务,创建 Request 并将它交给RequestManager(任务管理器),Request 启动 Engine(数据获取引擎) 去数据源获取资源(通过 Fetcher(数据获取器) ),获取到后 Transformation(图片处理) 处理后交给 Target(目标)。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。