Lottie 动画显示为静止图像但未播放

Lottie animation is showing as a still image but not playing

我正在编写一个应用程序并希望有一个 Lottie 动画作为我的初始屏幕,因为我正在学习 java 在我编写这个应用程序时我制作了一个测试应用程序以查看它会如何工作。我发现几乎所有 Lottie 动画都显示为静止图像,而不是 play/loop 动画。我跟着 guide on LottieFiles website and also information that I found on 但我仍然无法播放动画。以下正是我添加的内容:

Gradle 我的应用的依赖性:

dependencies {  
        implementation 'com.airbnb.android:lottie:3.6.1'
}

到我的布局XML:

<com.airbnb.lottie.LottieAnimationView
        android:id="@+id/splashlottie"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:lottie_fileName="opening_book.json" //Even tried placing the file in raw and using app:lottie_rawRes="@raw/opening_book"
        app:lottie_autoPlay="true"
        app:lottie_loop="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

在我的 activity:

        LottieAnimationView splashscreen;
        splashscreen = findViewById(R.id.splashlottie);

        splashscreen.animate();
        splashscreen.playAnimation();

我不确定我到底做错了什么,因为我什至尝试了各种不同的 lottie 动画文件,并将相同的文件放在 raw 和 assets 下。 API 关卡会不会是动画不播放的原因?

这是没有 lottieView.playAnimation() 的工作,因为 lottie_autoPlay="true":

<com.airbnb.lottie.LottieAnimationView
            android:id="@+id/anim_view"
            android:layout_width="256dp"
            android:layout_height="256dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:lottie_rawRes="@raw/anim_radio_waves"
            app:lottie_autoPlay="true"
            app:lottie_loop="true"/>

同时检查您的动画 json:lottie player

我能够使用以下代码 运行 动画:

val imageView = view.findViewById<LottieAnimationView>(R.id.image_view)
imagView.playAnimation()

xml代码:

<com.airbnb.lottie.LottieAnimationView
    android:id="@+id/image_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:lottie_fileName="womensDay.json"
    app:layout_constraintBottom_toTopOf="@+id/button_first"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textview_first"
    app:lottie_loop="true"/>

需要记住的几件事:

  1. 确保将 json 文件放在资产文件夹中,如果没有,请创建一个。参考:
  2. 为了测试,请尝试为您的视图提供绝对尺寸,例如 200dp(宽度和高度)。这可能是您的视图没有正确尺寸的情况。
  3. 尝试为不同的 json 文件设置动画,您的文件可能已损坏
  4. 尝试将 lottieView 放在 ViewGroup 中(任何类型,例如 LinearLayout)
  5. API 16 级及以上
  6. 支持 Lottie 动画

看起来你做得对。有没有可能动画是completely disabled on your phone?