Fresco的使用

本文详细介绍了Fresco图片加载库的各种特性及其在Android应用中的配置与使用方法,包括占位图、失败图、加载动画、圆角及圆形图片处理、点击重试等功能,并提供了具体的XML配置和Java代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fresco可以实现:

1)占位图
2)失败图
3)加载时的图片以及动画
4)图片背景图
5)圆形以及圆角 自定义角度和哪个角
6)点击重试图片重新加载网络图片

7)动画

8)图片缩放类型

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"   //注意命名空间
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/simpleDraweeView"
        fresco:placeholderImage="@mipmap/ic_launcher"
        fresco:placeholderImageScaleType="fitCenter"
        fresco:progressBarImage="@mipmap/icon_progress_bar"
        fresco:progressBarAutoRotateInterval="3000"
        fresco:progressBarImageScaleType="centerCrop"
        fresco:actualImageScaleType="centerCrop"
        fresco:failureImage="@mipmap/icon_failure"
        fresco:failureImageScaleType="centerCrop"
        fresco:retryImage="@mipmap/icon_retry"
        fresco:retryImageScaleType="center"
        fresco:fadeDuration="3000"
        fresco:backgroundImage="@android:color/holo_orange_dark"

        fresco:roundedCornerRadius="30dp"
        fresco:roundTopLeft="true"
        fresco:roundTopRight="true"
        fresco:roundBottomLeft="true"
        fresco:roundBottomRight="false"
        
        fresco:roundWithOverlayColor="@android:color/holo_blue_light"
        fresco:roundingBorderWidth="2dp"
        fresco:roundingBorderColor="@android:color/background_dark"

        android:layout_width="300dp"        //Drawees不支持包裹wrap_content
        android:layout_height="300dp" />
</RelativeLayout>

3)MainActivity

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Fresco.initialize(this);//注意:在添加布局前初始化Fresco
        setContentView(R.layout.activity_main);

        SimpleDraweeView simpleDraweeView = (SimpleDraweeView) findViewById(R.id.simpleDraweeView);

        Uri uri = Uri.parse("http://ope.lingyi365.com:5602/group1/M00/08/57/rBJxwFiab_mANq0fAAI8t3UoMIk911.jpg");
        simpleDraweeView.setImageURI(uri);//加载图片

        //设置点击重试图片,4次加载不成功显示失败的图片
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)//要加载的uri地址
                .setTapToRetryEnabled(true)   //开启点击重试
                .setOldController(simpleDraweeView.getController())//设置旧的Cotroller
                .build();//构建
        simpleDraweeView.setController(controller);
    }
}

注意:

1)//设置圆角图片

fresco:roundAsCircle="true"

2)设置圆形和角度同时存在,只会加载圆形


补充:

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

类型 描述
center 居中,无缩放
centerCrop 保持宽高比缩小或放大,使得两边都大于或等于显示边界。居中显示。
focusCrop 同centerCrop, 但居中点不是中点,而是指定的某个点
centerInside 使两边都在显示边界内,居中显示。如果图尺寸大于显示边界,则保持长宽比缩小图片。
fitCenter 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内。居中显示
fitStart 同上。但不居中,和显示边界左上对齐
fitEnd 同fitCenter, 但不居中,和显示边界右下对齐
fitXY 不保存宽高比,填充满显示边界
none 如要使用tile mode显示, 需要设置为none

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值