目录
Android开源的图片加载框架有很多,常见的ImageLoader、Picasso、Glide、Fresco;
1 4种常见图片框架
1.1 ImageLoader
Android-Universal-Image-Loader 是最早的开源项目,但是已经不再更新了;
优点:
1. 最早开源的图片缓存框架,比较稳定,加载速度适中;
2. 支持下载进度监听;
缺点:
1. 不支持GIF图片加载;
2. 使用比较繁琐,缓存机制和http的缓存机制结合不好;
3. 已经不再更新了;
Github网址:https://github.com/nostra13/Android-Universal-Image-Loader
1.2 Picasso
Picasso是 Square 公司开源的强大的下载和缓存图片库;
优点:
1. 使用比较简单,一行代码就可以加载图片并显示
2. 图片转换功能(图片高斯模糊、圆角、圆形图片);
2. 框架体积小;
缺点:
1. 不支持GIF图片 ;
2. 缓存的图片是没有缩放的,并且默认使用ARGB_8888格式缓存图片,缓存体积较大;
Github网址:https://github.com/square/picasso
1.3 Glide
Glide 是 Google 员工 bumptech 的开源项目,2014年google I/O大会上得到官方推荐;
优点:
1. Picasso所能实的功能Glide都可以做到,和Picasso一样使用起来比较简单;
2. 并且支持加载显示GIF、WebP图片、缩略图、视频静态图片;
3. 图片缓存也会自动缩放,默认使用RGB_565格式缓存图片,是Picasso缓存体积的一半;
缺点:
1. 网络加载性能比较差, 网络不好时,加载速度慢;
2. 加载GIF图片消耗内存交大;
2. 包比较大;
Github网址:https://github.com/bumptech/glide
1.4 Fresco
Fresco是 Facebook 推出的开源图片缓存框架;
优点:
1. 可以从网络、本地存储和本地资源加载图片,有两级缓存:一个在内存中,一个在内存存储中;
2. 可以显示动画GIF图片和WebP;
3. 可以渐进式加载图片,支持图片从模糊到清晰加载;
4. JPEG图片改变大小是通过native进行的,不在虚拟机堆内存,减少OOM;
缺点:
1. 侵入性较强,必须使用官方提供的SimpleDraweeView代替ImageView加载图片;
1. 框架比较大,造成Apk体积变大;
2. 操作步骤比较繁琐;
Github网址:https://github.com/facebook/fresco
2. 总结
1. 如果只是简单显示图片,使用Picasso;
2. 显示图片并且显示GIF,使用Glide;
3. 加载大量图片或渐进式显示图片,使用Fresco;