Подушечки для анимации Lottie

9

У меня вопрос к тем из вас, у кого есть опыт использования файлов lottie json. У меня не так много опыта в использовании лотереи, поэтому я подумал, что, возможно, мне не хватает некоторых очевидных знаний. Когда я визуализирую свою анимацию в виде, объект анимации помещается в центр вида следующим образом

 _____________________________________________
|                                             |
|        [animated object]                    |
|_____________________________________________|

Есть ли способ изменить файл json, чтобы анимированные объекты соответствовали всему виду следующим образом:

     _____________________________________________
    |                                             |
    | [a n i m a t e d         o b j e c t s     ]|
    |_____________________________________________|

Я попытался установить представление в xml следующим образом:

android:scaleType="centerCrop"
android:adjustViewBounds="true"

но это не сработало,
я также попытался установить больший масштаб:

app:lottie_scale="2" 

но я не добился успеха. Спасибо за уделенное время!

3

Просто относитесь к нему как к любому другому представлению и используйте setPadding программно.

LottieAnimationView btnHeart;

btnHeart.setPadding(-150, -150, -150, -150);
3
+25
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

      <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/animationView"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:scaleType="fitXY"
        app:lottie_autoPlay="true"
        android:padding="10dp"
        app:lottie_loop="true"
        app:lottie_rawRes="@raw/your_json_file_here"/></RelativeLayout>

** Попробуйте этот код. работает **

2

Используя «LottieDrawable» и «LottieComposition», вы можете легко установить масштаб. Нижний код у меня на 100% работает.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">

<com.airbnb.lottie.LottieAnimationView
    android:id="@+id/animation_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:lottie_loop="true"
    app:lottie_autoPlay="true"/>

</LinearLayout>

и часть Java

LottieAnimationView animationView = findViewById(R.id.animation_view);

LottieDrawable drawable = new LottieDrawable();

    LottieComposition.Factory.fromAssetFileName(this, "anim_1.json",(composition -> {
        drawable.setComposition(composition);
        drawable.playAnimation();
        drawable.setScale(3);
        animationView.setImageDrawable(drawable);

    }));
1
  • Какую версию ты используешь? Это не работает для меня 6 фев '19 в 7:21