Glide:
功能特点:
1,图片异步加载,设置加载尺寸,设置加载动画,设置加载中和加载失败的图片,加载的图片格式丰富:JPG,PNG,GIF,WEBP支持设置缩略图 ;
2,加载的图片路径多种:网络本地资源assets等;
3,缓存特点:跳过内存缓存,缓存动态清理,设置缓存策略;
4,其他特点:生命周期集成,设置动态转换,设置下载优先级;
优点:
1,使用简单,可配置度高,自适应程度高;
2,多样化媒体加载:Glide不仅是一个图片缓存,支持常见的图片格式jpg png gif webp;
3,生命周期集成:根据Activity/fragment生命周期自动管理请求将Activity/Fragment作为with()参数的好处是:图片加载会和Activity/Fragment的生命周期保持一致,比如Paused状态在暂停加载,在Resumed的时候又自动重新加载;
4,高效的缓存策略:
(1)支持Memory和Disk图片缓存;
(2)Picasso缓存的是全尺寸的,而Glide缓存的是跟ImageView尺寸相同的;
(3)内存开销小,Glide加载的图片质量要差于Picasso,因为Glide默认的Bitmap格式是RGB_565 ,比ARGB_8888格式的内存开销要小一半;
(4)高效处理bitmap,使用bitmap pool使bitmap复用,主动调用recycle回收需要回收的bitmap,减少系统回收压力;
(5)图片缓存->媒体缓存;
(6)支持优先级处理;
(7)支持 okhttp、Volley;
缺点
1,使用方法复杂;
2,由于Glide其功能强大,所以使用的方法非常多,其源码也相对的复杂;
3,包较大;
Fresco
功能特点:
1,两个内存缓存加上本地缓存构成了三级缓存;
2,渐进式呈现图片;
3,支持加载的Gif图和WebP的格式;
优点:
1,内存自动回收。图片不可见时,会及时自动释放所占用的内存,尽可能地避免OOM ;
2,三级缓存机制。两级内存缓存(解码的与未解码的)+一级磁盘缓存,提升加载速度,节省内存占用空间 ;
3,支持各种加载场景。如动图加载,高斯模糊等常见的图片加载场景。另外还提供了独特的渐进式加载,先加载小图再加载大图,加载进度等功能(很强大) ;
缺点:
1,框架较大,影响Apk体积 ;
2,侵入性较强。须使用它提供的SimpleDraweeView来代替ImageView的加载显示图片;
Picasso
功能特点:
1、Picasso是全尺寸下载图片;
2、Picasso默认的缓存格式为ARGB_888;
3、链式调用,使用简单;
4、具有一般图片框架的基础功能;
5、方便的图片转换;(图片高斯模糊,添加圆角,做度灰处理,圆形图片);
6、加载过程监听和错误处理;
7、自动添加磁盘和内存二级缓存;
8、支持多种数据源加载;
9、Picasso默认不支持Gif图片加载。Picasso库很小,类也很少,库仅118KB大小;
10、Picasso支持调试和日志;
网友评论