ImageLoader
-
优点
- 支持本地缓存文件名规则定义
- 支持下载进度监听
- 内存缓存和磁盘缓存
- 默认实现多种内存缓存算法,如Size最大先删除、使用最少先删除、最近最少使用、先进先删除、时间最长先删除等
- 可以在View滚动中暂停图片加载,通过PauseOnScrollListener接口可以在View滚动中暂停图片加载
-
缺点
- 配置比较麻烦
- 已停止更新
- HttpClient已被Google放弃,HttpClient存在API数量过多,扩展困难
Fresco
-
优点
- 内存自动回收,图片不可见时,会计时自动释放所占用的内存,尽可能地避免OOM
- 三级缓存。两级内存缓存(解码和未解码)+ 一级磁盘缓存。提升加载进度,节省内存占用空间
- 内存缓存分别为bitmap缓存和未解码的图片缓存,这样既可以加快图片的加载速度,又能节省内存的占用,文件缓存和未解码内存缓存相似,文件缓存存储的是未解码的原始图片。另外,在app切换到后台时,Fresco从会自动清理两级的内存缓存支持各种加载场景。如动图加载,高斯模糊加载,还提供了渐进式加载,先加载小图再加载大图
- 支持优先级处理
- 加载进度的监听
- 支持多种自定义图片加载过程
- 推按可以以任意的中心店显示在ImageView,而不仅仅是图片的中心
- 很好的支持gif加载
- 缓存原始图像
-
缺点
- Fresco比较重量级,体积较大
- Fresco注入性比较强,用法相对繁琐
- 必须使用SimpleDraweeView道题ImageView加载显示图片
- 显示图片必须指定图片的宽高
Picasso
-
优点:
- Picasso采用ARGB-8888,加载的是全图,图片质量和清晰度较高
- 支持优先级处理。每次任务调度钱会选择优先级较高的任务
- 支持延迟到图片尺寸计算完成加载
- 根据网络变化自动调整线程池最大并发数
- 两级缓存,内存缓存和磁盘缓存,图片加载顺序是LruCache -- DisLruCache --- NetWork
-
缺点:
- 采样率过高,倒置出现OOM异常的概率比glide高
- 不能加载Gif图片
- 缓存侧率和加载速度不足
Glide
-
优点
- 支持优先级处理
- 支持Gif图片的加载
- 图片占用内存回收及时,能减少因内存不足造成的崩溃,生命周期和Activity/Fragment一致,默认Bitmap格式是RGB_565,减少内存占用,不单可以缓存图片,还可以缓存媒体
- 有内存和磁盘缓存
- 会根据ImageView控件尺寸获得对应大小的bit
-
缺点
- 使用的时候耗内存比较严重
- 方法数量: Fresco > Glide > ImageLoader
- 流畅度:Glide ≈ Fresco > ImageLoader
- 体积大小: Fresco > Glide > Picasso
- 内存消耗:Fresco > ImageLoader > Picasso > Glide
网友评论