私も同じ問題を抱えていました。この素晴らしい人には説明があります。
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
、起動時に元の (私が推測する) 「醜い白い」画面を表示することもできます。