android - 如何从内部存储而不是资产文件夹传递 JSON 动画文件?
问题描述
如何从内部存储而不是 Lottie 动画视图中的资产文件夹传递 JSON 动画文件?
解决方案
Lottie Library 仅使用 fileName 属性从 assets 文件夹中设置 JSON 文件。例如:
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/anim_iv"
android:layout_width="wrap_content"
android:layout_height="300dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
app:lottie_fileName="sample.json"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_imageAssetsFolder="images"
/>
如果您尝试从内部或外部存储设置 JSON 文件,则它将无法正常工作。您必须从字符串中的 JSON 文件加载所有 JSON 数据,并使用 setAnimationFromJson() 方法将其设置为 LottieAnimationView,如下所示 -
LottieCompositionFactory.fromJsonString(json,getString(R.string.app_name)).addListener(new LottieListener<LottieComposition>() {
@Override
public void onResult(LottieComposition result) {
animView.setComposition(result);
});
推荐阅读
- php - 调整回头客下方的文字
- python - 网页抓取:从 javascript 链接下载 pdf
- angular - 带有意外令牌的 Angular 4 Prod 构建中的错误
- asp.net - 合并冲突 - 出现奇怪的字符
- scala - 如何在不使用 http 请求中的主机标头的情况下获取服务器名称
- sql-server - springboot中如何访问两个SQl服务器
- java - 根据 Java 环境变量中的值创建使用 @JsonIgnore 的自定义注释
- node.js - 在 async/await Express 路由器中使用 MongoDB 客户端的正确方法
- azure - 如何在 Azure 虚拟网络上限制出站连接到 URL 而不是 IP 地址?
- matlab - 矩阵的第一个非单维究竟是什么?