Fresco的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40087961/article/details/79960790

Fresco是一个图片加载框架
Facebook出品的一个强大的图片加载组件Fresco
Fresco中文说明:http://www.fresco-cn.org/
Fresco项目GitHub地址:https://github.com/facebook/fresco
Fresco在使用时我们需要加入的权限:

 <uses-permission android:name="android.permission.INTERNET"/>

Fresco要添加的依赖(可根据实际情况来导入)

// Fresco所需依赖(一般使用这个)  
compile 'com.facebook.fresco:fresco:0.12.0'
// 在 API < 14 上的机器支持 WebP 时,需要添加  
  compile 'com.facebook.fresco:animated-base-support:0.12.0'
// 支持 GIF 动图,需要添加  
compile 'com.facebook.fresco:animated-gif:0.12.0'
// 支持 WebP (静态图+动图),需要添加  
compile 'com.facebook.fresco:animated-webp:0.12.0'
compile 'com.facebook.fresco:webpsupport:0.12.0'
// 仅支持 WebP 静态图,需要添加    
compile 'com.facebook.fresco:webpsupport:0.12.0'

并且在使用之前要对fresco进行初始化:一般初始化的东西习惯的放在全局来进行初始化
例:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //fresco的初始化
        Fresco.initialize(this);
    }
}

注意:在布局文件中width和height不能设置为warp_parent
例:

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/img"
    fresco:roundAsCircle="true"
    android:layout_gravity="center"
    android:layout_width="100dp"
    android:layout_height="100dp" />

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控件纵横比

具体的体现观看fresco的xml例子

但是Fresco 也有不足的地方:

不支持 wrap_content ,必须显示的指定 view 的长宽
不会按照 view 的尺寸,动态调整图片宽高尺寸
res 资源只支持真正的图片资源,xml 的不行。若需要的话,可以设置为占位图,加载资源设为 null 即可
支持多图请求,相当于 Glide 的缩略图,但是相比 Glide 的缩略图设置要差很多,多图请求不是并发,是先后顺序,不能设置原图为缩略图然后指定尺寸和缩略倍数
使用特有的 view 来显示图片,侵入性强
在 4.X 版本不兼容 SVG 矢量图,即便是按照 SVG 4.X 版本兼容写,把 SVG 图片包裹到 seletor 里面一样也是不行。

阅读更多

没有更多推荐了,返回首页