0

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

4

2 回答 2

0

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);
 });
于 2019-05-31T13:24:27.940 回答
-1

你会想要一些类似的东西

File TEST = new File(Environment.getExternalStorageDirectory(), "TEST");
TEST.mkdir(); // make directory may want to check return value
String path = TEST.getAbsolutePath(); // get absolute path

和权限

<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
于 2019-01-22T13:15:40.463 回答