Fresco中SimpleDraweeView控件的基本运用

本文介绍了Fresco库中SimpleDraweeView的使用,包括设置占位图、加载图、失败图、重试图、淡入淡出动画、背景图、圆形和圆角图像等属性,并提供了代码示例和注意事项。通过示例展示了如何处理图片加载的各种状态,以及自定义显示效果。
摘要由CSDN通过智能技术生成
百学须先立志—学前须知:

在我们平时加载图片(不管是下载还是加载本地图片…..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该呈现正在加载时的图像,当图片加载失败时应该呈现图片加载时的图像,当我们重新加载这张图片时,应该呈现重试时图像,直到这张图片加载完成。这些繁琐并且重复的如果得不到简化的话,那将是一个开发人员的噩梦,现在好了,我们用 Facebook 出品的一个强大的图片加载组件 Fresco 几行代码就可以搞定以上问题了。
尽信书,不如无书—能学到什么?

1、SimpleDraweeView最基本的使用
2、SimpleDraweeView的圆形图
3、SimpleDraweeView的圆角图
4、SimpleDraweeView的缩放类型
工欲善其事必先利其器—下载Fresco并导入到项目

Fresco中文说明:http://www.fresco-cn.org/

Fresco项目GitHub地址:https://github.com/facebook/fresco

初次使用,我们就先简单书写我们的 activity_main.xml :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.m520it.frescotest.MainActivity">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/main_img"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_centerInParent="true"/>
</RelativeLayout>
强调:在设置SimpleDraweeView控件大小时,不能设置"wrap_content"属性,否则无法加载图片

布局文件和代码写完后运行后,出现错误:

运行报错了!怎么回事呢?这里啊,是因为我们没有在应用调用 setContentView() 之前进行初始化Fresco造成的;解决办法:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //应用调用 setContentView() 之前必须先进行初始化Fresco,否则报空指针
        Fresco.initialize(this);
        setContentView(R.layout.activity_main);
        initView();
    }
初始化Fresco后,在运行就不会出现错误了

占位图—placeholderImage:

在此之前我们需要一张占位图 icon_placeholder.png 大家右键另存为即可



代码说明:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    //加入命名空间
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.m520it.frescotest.MainActivity">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/main_img"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_centerInParent="true"
        //占位图片
        fresco:placeholderImage="@drawable/icon_placeholder"
        //占位图片缩放类型
       fresco:placeholderImageScaleType="fitXY"
        />
</RelativeLayout>
占位符

正在加载图—progressBarImage:

在此之前我们需要一张正在加载图 icon_progress_bar.png 大家右键另存为即可:



代码说明:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.m520it.frescotest.MainActivity">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/main_img"
        android:l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值