Fresco是Facebook开源的图片加载组件;
参考:
1. Fresco官方网站:https://www.fresco-cn.org/
2. Fresco的github网址:https://github.com/facebook/fresco
3. Fresco的官方demo:https://github.com/liaohuqiu/fresco-demo-for-gradle
4. Fresco基于Chris Banes的demo:https://github.com/06peng/FrescoDemo
Fresco的2个模块:
1. Fresco 中设计有一个叫做 Image Pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级磁盘)。
2. Fresco 中设计有一个叫做 Drawees 模块,它会在图片加载完成前显示占位图,加载成功后自动替换为目标图片。当图片不再显示在屏幕上时,它会及时地释放内存和空间占用。
Fresco还支持:
- 渐进式JPEG流式传输
- 显示动画GIF和WebP
- 广泛的图像加载和显示定制
优点:
- 内存自动回收;图片不可见时,会自动释放所占内存,避免OOM;
- 三级缓存机制,两级内存缓存(解码的与未解码的)+一级磁盘缓存,提升加载速度,节省内存占用空间 ;
- 支持各种加载场景,提供动态加载、高斯模糊、渐进式加载、先加载小图再加载大图、加载进度等功能;
缺点:
- 体积大,较其他图片加载库要大;
- 侵入性较强。须使用它提供的SimpleDraweeView来代替ImageView加载显示图片
Fresco配置参考:
参考:https://www.fresco-cn.org/docs/index.html