功能描述:加载本地磁盘存储的大量图片,以列表缩略图的格式呈现,点击其中一张图展示大图。
其他功能需求:
- 支持自动旋转
- 内存、磁盘缓存。
- 支持gif
- 支持resize
- 支持bitmap格式定义。argb8888,rgb565
- 支持webp,可以减小图片大小
uil:
优点:出现的比较早
缺点:已经停止维护了
picasso:
优点:代码量小,简单易读
缺点:缓存的是原图,针对产品加载缩大量略图性能没有达到最佳
glide:
优点:加载本地的图片也会有磁盘缓存,并且缓存的图片大小与加载过程关联的view大小匹配。因此
针对缩略图浏览的功能,这个优化刚好发挥作用。
fresco:
优点:功能很强大。自定义drawee,在5.0以前的平台上,bitmap存储在匿名共享内存,不占用堆内存
,避免oom。
缺点:fresco只针对网络图片产生磁盘缓存。在本产品功能场景之下,每次加载列表数据,都加载的是
磁盘原始图片,性能不好。
自动旋转 | 加载本地图片做磁盘缓存 | 支持gif | 支持resize | bitmap格式定义 | 支持webp |
---|---|---|---|---|---|
uil | true | false | true | default argb8888 | |
picasso | true | true | true | default argb8888 | |
glide | true | true | true | true | default rgb565 |
fresco | true | false | true | true | default argb8888 |
总结:经过对比分析,glide更适合本项目功能需求,可以为列表滑动提供更加流畅的体验。
图片系列链接:Android图片系列-1.图片压缩、裁剪分析整理