Fresco的使用小结(一)
1. Fresco的由来:Facebook 出品的一个强大的图片加载组件
2. Fresco优缺点:
Facebook 就另辟蹊径,既然没法在 Java 层处理,我们就在更底层的 Native 堆做手脚。于是 Fresco 将图片放到一个特别的内存区域叫 Ashmem 区,就是属于 Native 堆,图片将不再占用 App 的内存,Java 层对此无能为力,这里是属于 C++ 的地盘,所以能大大的减少 OOM。
总结
优点:支持图像渐进式呈现,大公司出品,后期维护有保障
缺点:框架体积较大,3M左右会增大apk的大小;操作方式不是特别简单,有一定学习成本
特点:有两级内存一级文件的缓存机制,并且有自己特别的内存区域来处理缓存,避免oom
Fresco 如何集成:
github 地址:https://github.com/facebook/fresco
在app build.gradle 中配置:implementation'com.facebook.fresco:fresco:1.9.0'
3、基本使用:
//布局:
XML属性意义
fadeDuration 淡入淡出动画持续时间(单位:毫秒ms)
actualImageScaleType 实际图像的缩放类型
placeholderImage 占位图
placeholderImageScaleType 占位图的缩放类型
progressBarImage 进度图
progressBarImageScaleType 进度图的缩放类型
progressBarAutoRotateInterval 进度图自动旋转间隔时间(单位:毫秒ms)
failureImage 失败图
failureImageScaleType 失败图的缩放类型
retryImage 重试图
retryImageScaleType 重试图的缩放类型
backgroundImage 背景图
overlayImage 叠加图
pressedStateOverlayImage 按压状态下所显示的叠加图
roundAsCircle 设置为圆形图
roundedCornerRadius 圆角半径
roundTopLeft 左上角是否为圆角
roundTopRight 右上角是否为圆角
roundBottomLeft 左下角是否为圆角
roundBottomRight 右下角是否为圆角
roundingBorderWidth 圆形或者圆角图边框的宽度
roundingBorderColor 圆形或者圆角图边框的颜色
roundWithOverlayColor 圆形或者圆角图底下的叠加颜色(只能设置颜色)
viewAspectRatio 控件纵横比
//代码中:Uri uri = Uri.parse(urlStr);
fresco_test.setImageURI(uri);//之后的一切全交给fresco就行了
URIs的使用:
4.Fresco获取Bitmap代码:
https://www.jianshu.com/p/ec4961133192
网友评论