我有同样的问题。这个了不起的人有解释。
TL;DR(只有在链接出错的情况下,我才会去阅读它):“预览窗口的目的是为用户提供应用程序启动的即时反馈,但它也让您的应用程序有时间进行自我初始化。当您的应用程序已准备好运行,系统会移除该窗口并显示您的应用程序的窗口和视图。” 您可以在主题中进行设置。至少,我的设置:
/res/values/styles.xml 中的主题:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowBackground">@drawable/app_bg</item>
</style>
<!-- Base theme for any other activity other than your starting one. -->
<!-- If only one activity, just set the splash bg as its bg -->
<style name="MyTheme.MainActivity" parent="@style/AppTheme">
<item name="android:windowBackground">@drawable/app_splash_bg</item>
</style>
</resources>
AndroidManifest.xml:
...
<activity
android:name=".MainActivity"
android:theme="@style/MyTheme.MainActivity"
...
<!-- Set the MainActivity theme, can be skipped if you only have -->
<!-- one activity and did not setup anything other than your base theme -->
MainActivity.java:
@Override
protected void onResume() {
super.onResume();
MainActivity.this.getWindow().setBackgroundDrawableResource(R.drawable.app_bg);
}
基本上,你为你的开始活动设置了一个带有启动背景的主题。然后,您在onResume
所述启动活动期间将背景设置为正常背景。
此外,您可以在启动活动主题中注释掉windowBackground
声明以在启动时查看原始(我假设)“丑陋的白色”屏幕。