文章目录

前言

Android中图片加载框架很多,但用的比较多的是Glide和Fresco,之前比较常用Glide,也有单独的记录过。这次简单记录一下Facebook的Fresco图片加载框架。

Fresco也是很强大的,下面根据AI助手的回答,然后简单记录一下。

正文

build.gradle

app/build.gradle中引入库

implementation 'com.facebook.fresco:fresco:3.1.3'
//webp动画
implementation 'com.facebook.fresco:animated-webp:3.1.3'
//gif动画
implementation 'com.facebook.fresco:animated-gif:3.1.3'

我这要支持动画,因此新增了webp和gif动画扩展库。

layout.xml

需要单独导入自定义的SimpleDraweeView

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/main_sd_image_0"
    android:layout_width="260dp"
    android:layout_height="228dp"
    fresco:placeholderImage="@mipmap/ic_launcher"
    fresco:roundAsCircle="false"
    fresco:roundingBorderColor="#f00"
    fresco:roundingBorderWidth="0dp" />

注意,上面我新增部分fresco属性配置

  1. placeholderImage 站位图片

  2. roundAsCircle 是否圆形

  3. roundingBorderColor 圆形边框颜色

  4. roundingBorderWidth 圆形边框宽度

这里还有很多属性可以配置,具体看Fresco中SimpleDraweeView的属性中的定义可

URI

这里简单记录一下URI的获取,可以从网上,本地,raw和Assets 目录。

Assets

Uri assetUri = Uri.parse("asset:///a.webp");
Uri assetUri = Uri.parse("asset:///animation/aaa.webp");

animation是asset目录下的目录

raw

Uri rawUri = Uri.parse("res:///" + R.raw.a); 
Uri rawUri = Uri.parse("res://" + getPackageName() + "/" + R.raw.a)

本地

 Uri localUri = Uri.fromFile(new File("/storage/emulated/0/webp/a.webp"))

网络

Uri webUri = Uri.parse("https://www.biumall.com/wp-content/themes/BiuX/assets/images/random/0.webp")

代码片段

方式1

Uri uri = Uri.parse("res:///" + R.raw.a); 
SimpleDraweeView simpleDraweeView = findViewById(R.id.main_sd_image_0);
simpleDraweeView.setImageURI(uri);

方式2

Uri uri = Uri.parse("res:///" + R.raw.a); 
SimpleDraweeView simpleDraweeView = findViewById(R.id.main_sd_image_0);
DraweeController draweeController = Fresco.newDraweeControllerBuilder()
        .setUri(uri)
        .setAutoPlayAnimations(true)
        .build();
simpleDraweeView.setController(draweeController);

自动播放动图,比如gif动图

当然还可以控制,这里就懒得附上了,可以百度一下哈。

参考文章

  1. 腾讯元宝

  2. Android中使用Fresco高效加载GIF动图实战

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

none
暂无评论...