Android-Lottie: как передать файл анимации JSON из внутреннего хранилища вместо папки «Ресурсы» - PullRequest
0 голосов
/ 22 января 2019

Android-Lottie: как передать анимационный файл JSON из внутреннего хранилища вместо папки «Ресурсы» в представлении анимации Lottie.

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Lottie Library устанавливает файл JSON только из папки ресурсов с помощью атрибута fileName. Для экземпляра:

<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 в виде строки и установить для них значение LottieAnimationView, используя метод setAnimationFromJson (), например:

 LottieCompositionFactory.fromJsonString(json,getString(R.string.app_name)).addListener(new LottieListener<LottieComposition>() {
        @Override
        public void onResult(LottieComposition result) {
            animView.setComposition(result);
 });
0 голосов
/ 22 января 2019

Вы хотели бы что-то вроде

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>
...