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属性配置
placeholderImage 站位图片
roundAsCircle 是否圆形
roundingBorderColor 圆形边框颜色
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动图
参考文章
《腾讯元宝》
《
