android之Fresco框架(一)--Fresco基本使用

当下最常用的图片加载框架是:Gilde,Fresco,Picasso。Fresco是Facebook提供的开源图片加载库,它能够从网络,本地存储和Android资源文件中加载图片,且具有三级缓存设计(2级内存,1级文件)。Fresco中实现了各种加载过程以及加载后的图片绘制,整体都很强大。所以准备来好好学学这个框架啦。

Frescp框架的设计主要采用的是MVC模式。DraweeView实现了View的功能,DraweeHierarchy实现了Model的功能,DraweeController实现Controller的功能。

基本用法

首先在build.gradle中添加依赖,目前已经更新到1.8.1版本了:

dependencies {
  // 在 API < 14 上的机器支持 WebP 时,需要添加
  //compile 'com.facebook.fresco:animated-base-support:1.8.1'

  // 支持 GIF 动图,需要添加
  //compile 'com.facebook.fresco:animated-gif:1.8.1'

  // 支持 WebP (静态图+动图),需要添加
  //compile 'com.facebook.fresco:animated-webp:1.8.1'
  //compile 'com.facebook.fresco:webpsupport:1.8.1'

  // 仅支持 WebP 静态图,需要添加
  compile 'com.facebook.fresco:webpsupport:1.8.1'
}

在Android studio会自动下载相应的依赖包。

在进行图片加载之前,需要配置Fresco类,Fresco.initialize只需要调用一次,所以我们在Application中进行初始化:

public class MyApplication extends Application {
    @Override
    public void onCreate(){
        super.onCreate();
        Fresco.initialize(this);
    }
}

在AndroidManifest.xml中配置MyApplication,如果要从网络下载图片,还需要添加网络访问权限:

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

在xml中配置SimpleDraweeView

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/id_main_sdv"
    android:layout_width="20dp"        
    android:layout_height="20dp"
    fresco:placeholderImage="@drawable/imgbg"
/>

在Activity中加载图片:

SimpleDraweeView sdv = (SimpleDraweeView) findViewById(R.id.id_main_sdv);
Uri uri = Uri.parse("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523079111408&di=7783555b20885592a8034c6e729a6414&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01ea90595f5ca4a8012193a3d93648.jpeg");
sdv.setImageURI(uri);

接下来就是等待Fresco下载完图片并展示出来了。

XML中配置使用Drawees

一个大致的XML配置例示如下:

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/id_main_sdv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        fresco:actualImageScaleType="focusCrop"             //加载得到的图片的缩放类型
        fresco:fadeDuration="1000"                          //进度条,占位图片消失,加载图片展现的时间间隔
        fresco:failureImage="@drawable/imgbg"               //加载失败之后显示的图片
        fresco:failureImageScaleType="centerInside"         //图片缩放类型
        fresco:placeholderImage="
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值