Android异步图片加载库
Android-Universal-Image-Loader
Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。
特点:
- 多线程的图像加载;
- 图片异步加载缓存机制,包括内存缓存(软引用)及本地缓存;
- 动态对ImageLoader的配置(线程池的大小,HTTP选项,内存和光盘高速缓存方式,显示图像,以及其他选项);
- 对加载过程实现监听和事件处理;
- 能够配置加载图片的显示选项,包括图片圆角处理和加载完成显示动画等;
用法:Android-Universal-Image-Loader: 可重复使用的仪器为异步图像加载,缓存和显示
开源地址:https://github.com/nostra13/Android-Universal-Image-Loader
picasso
picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。
picasso使用简单,如下:
Picasso.with(context).load(“http://i.imgur.com/DvpvklR.png”).into(imageView);
主要有以下一些特性:
- 在adapter中回收和取消当前的下载;
- 使用最少的内存完成复杂的图形转换操作;
- 自动的内存和硬盘缓存;
- 图形转换操作,如变换大小,旋转等,提供了接口来让用户可以自定义转换操作;
- 加载载网络或本地资源;
gitHub地址:https://github.com/square/picasso
Android-ImageCache-Warmtel
极简单的网络图片异步加载库,仅有一个实现类.
使用如下:
AsyncMemoryFileCacheImageLoader.getInstance(context).loadBitmap(getResources(), picUrl, imageView);
主要有以下一些特性:
- 异步网络加载图片;
- LRUCache内存缓存
- DiskLRUCache文件缓存
- 多任务同步执行
- 高效大图处理
- ListView和GridView滚动图片错乱处理
Glide
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。
Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是在细节上还是有不少区别的。
Glide支持Gif、图片缩略图、本地视频解码、请求和动画生命周期的自动管理、渐显动画、支持OkHttp和Volley等等,默认是使用HttpUrlConnection加载图片。
导入库
Glide
- dependencies {
- compile ‘com.github.bumptech.glide:glide:3.5.2’
- compile ‘com.android.support:support-v4:22.0.0’
- }
github地址:https://github.com/bumptech/glide
Fresco
Fresco框架内部用了大量的建造者模式、单例模式、静态工厂模式、生产/消费者模式。内部实现比较复杂,就拿图片加载来说,是通过在异步线程中回调图片的输入流,然后通过一系列读取、写入、转化成EncodedImage,然后再Decode成Bitmap,通过Handler转给UI线程显示,通过IO操作存储在硬盘缓存目录下。
转载请注明来源:Android异步图片加载库