我正在编写一个应用程序,并希望有一个Lottie动画作为我的启动画面,因为我正在学习Java,因为我编码这个应用程序,我做了一个测试应用程序,看看事情将如何工作。我发现几乎任何Lottie动画都只显示为静止图像,不播放/循环动画。我跟着guide on LottieFiles website和我在other questions上找到的信息,但我仍然没有设法让动画播放。以下正是我所补充的:
我的应用程序的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" />
在我的活动中:
LottieAnimationView splashscreen;
splashscreen = findViewById(R.id.splashlottie);
splashscreen.animate();
splashscreen.playAnimation();
我不知道我到底做错了什么,因为我甚至尝试了各种不同的Lottie动画文件,并将相同的文件放置在原始和资产下。API级别是否是动画无法播放的原因?
4条答案
按热度按时间rslzwgfq1#
看起来你做得对。有没有可能动画是completely disabled on your phone?
huwehgph2#
我可以使用以下代码运行动画:
xml代码:
有几件事要记住:
1.确保你把你的json文件放在了asset文件夹中,如果没有的话就创建一个。参考:https://stackoverflow.com/a/50907775/5745574
1.只是为了测试,尝试给你的视图绝对尺寸说200dp(宽度和高度)。这可能是你的视图没有正确的维度的情况。
1.尝试动画一个不同的json文件,您的文件可能已损坏
1.尝试将您的lottieView放置在ViewGroup中(任何类型,例如LinearLayout)
0wi1tuuw3#
我想指定一些关于不播放动画的东西。如果你使用LottieAnimationView,或者使用图片url,或者使用lottie json url,比如toggle,你可能需要以编程方式启动动画,即使你在xml中设置了
app:lottie_autoPlay="true"
;2ledvvac4#
这是没有lottieView.playAnimation()的工作,因为lottie_autoPlay=“true”:
也检查你的动画json:lottie player