首页 > 解决方案 > 如何从内部存储而不是资产文件夹传递 JSON 动画文件?

问题描述

如何从内部存储而不是 Lottie 动画视图中的资产文件夹传递 JSON 动画文件?

标签: androidanimationassetslottie

解决方案


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);
 });

推荐阅读