java - 如何在 Android 中将 Lottie 动画设置为启动画面?
问题描述
在 Android Studio 中,您可以将可绘制对象设置为启动画面,如下所示:
可绘制文件夹中的splash_screen.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/blue"/>
<item
android:drawable="@mipmap/ic_launcher_foreground"
android:gravity="center"
android:top="201dp"
android:bottom="201dp"
android:right="100dp"
android:left="100dp"/>
</layer-list>
将SplashTheme添加到styles.xml:
<style name="SplashTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:background">@drawable/splash_screen</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
SplashActivity类(没有布局):
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
最后在 Manifest 中从 MainActivity 中删除意图过滤器并将其添加到 SplashActivity:
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" />
就是这样。那么,我如何添加一个抽签动画而不是一个可绘制的?我知道这是可能的,因为我看到许多应用程序在打开时会立即加载动画。我用谷歌搜索了这个问题,提供的答案来自,无意冒犯,不是很聪明的人,因为他们说要添加一个新的启动器活动,其中包含带有动画的布局并播放到最后或使用handler.postDelayed
. 动画的目标应该是在应用加载时向用户显示除空白屏幕之外的其他内容。为什么要故意为用户添加不属于加载时间的延迟?
解决方案
推荐阅读
- echarts - 如何以编程方式显示带有 show: false 或 trigger: 'none' 的工具提示?
- apache-karaf - hawtio karaf 蓝图不受支持的命名空间
- java - 了解使用故障转移的 ActiveMQConnection 是否连接到代理
- c++ - Vulkan - 在第二个渲染通道中加载深度附件不起作用
- ruby - 如何在 webrick/ruby 中进行重定向?
- node.js - 如何在路由文件中使用socket.io?反应 - 节点 - 快递
- angular - Angular,createComponent() 抛出“错误类型错误:无法添加属性”
- javascript - ajax 加载不适用于 async:false
- python - 从 MRO 中的类获取方法装饰器的参数
- sql-server - T-SQL:存储过程的执行