Анимация Lottie для полной заставки не занимает весь экран

Я должен использовать анимацию лотереи для заставки в Android. Я использовал родительский элемент соответствия для ширины и высоты. Но он показывает мне некоторые отступы по краям экрана, как на прикрепленном изображении. Если я использую масштабный тип как fitXY, то его изображение растягивается на некоторых устройствах. Как я могу использовать файл анимации лотереи для всех разрешений устройства или мне нужно попросить нашего дизайнера внести изменения в файл?

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/retention_bg_welcome_color">

<com.airbnb.lottie.LottieAnimationView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:lottie_autoPlay="true"
    app:lottie_fileName="test_lottie.json"
    android:adjustViewBounds="true"
    app:lottie_loop="true"
    app:lottie_speed="0.8" />
</androidx.constraintlayout.widget.ConstraintLayout>

введите здесь описание изображения


person user2050075    schedule 06.09.2020    source источник
comment
пожалуйста, покажите XML родителя   -  person Lena Bru    schedule 06.09.2020
comment
@Lena Bru Я добавила свой xml. Пожалуйста, предложите.   -  person user2050075    schedule 06.09.2020
comment
почему вы поставили android:adjustViewBounds=true ?   -  person Lena Bru    schedule 06.09.2020
comment
попробуйте в представлении лотереи вместо layout_width=match_parent поставить layout_width=0dp и то же самое для layout_height. Это должно заставить макет ограничения вычислить правильный размер   -  person Lena Bru    schedule 06.09.2020
comment
@LenaBru Так было раньше. Обе высоты/ширины были 0dp. Я поменял их просто для проверки. Где-то упоминалось о добавлении android:adjustViewBounds=true. Все еще отступы по краям   -  person user2050075    schedule 06.09.2020
comment
и вы уверены, что заполнение исходит из представления лотереи, а не родителя представления лотереи? или родитель родителя?   -  person Lena Bru    schedule 06.09.2020
comment
да, я уверен, поскольку я пробовал, добавляя фиктивный вид и добавляя к нему цвет. Я думаю, нужны ли нам какие-то изменения в файле json. Будет ли один файл json поддерживать все разрешения экрана?   -  person user2050075    schedule 06.09.2020
comment
см. обновленный ответ   -  person Lena Bru    schedule 06.09.2020
comment
не могли бы вы загрузить Lottie JSON? Я попробую это в своей среде разработки и посмотрю, можно ли что-нибудь сделать.   -  person Lena Bru    schedule 07.09.2020
comment
Давайте продолжим обсуждение в чате.   -  person user2050075    schedule 07.09.2020


Ответы (4)


У меня такая же проблема.

android:scaleType="centerCrop" помог мне

Полный xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/home_splash"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:gravity="center_horizontal">

<com.airbnb.lottie.LottieAnimationView
    android:id="@+id/animation_view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:duplicateParentState="true"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:lottie_autoPlay="true"
    app:lottie_fileName="test.json"
    app:lottie_loop="false"
    android:scaleType="centerCrop"
    tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
person Carsten    schedule 26.05.2021

используйте это в своей деятельности

requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
person mohammad rahimi    schedule 06.09.2020
comment
Спасибо за ответ. Но это не работает для меня. - person user2050075; 06.09.2020

Добавить свойство android:scaleType к com.airbnb.lottie.LottieAnimationView

<com.airbnb.lottie.LottieAnimationView
  android:id="@+id/lottieView"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:scaleType="centerCrop" // fitXY or centerCrop will resolve the aspect issue
  app:lottie_autoPlay="true"
  app:lottie_loop="false"
  app:lottie_rawRes="@raw/splash" />
person imKrishh    schedule 25.06.2021

person    schedule
comment
Для этого мне нужно использовать scaleType как fitXY. Затем анимация может выглядеть растянутой на устройствах с более высоким разрешением. - person user2050075; 06.09.2020