Android应用启动时的白色背景

时间:2013-11-02 04:12:41

标签: android android-layout

每当我的应用启动时,都会在短时间内显示白色背景。 尽管使用了启动画面,问题仍然存在。 我想将启动屏幕设置为黑色而不是默认的白色!

这是我的启动画面活动:

public class SplashActivity extends Activity {

private static String TAG = SplashActivity.class.getName();
private static long SLEEP_TIME = 1;    // Sleep for some time

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);    // Removes title bar
    setContentView(R.layout.splash);

    // Start timer and launch main activity
    IntentLauncher launcher = new IntentLauncher();
    launcher.start();
}

private class IntentLauncher extends Thread {

    /**
      * Sleep for some time and than start new activity.
      */ 
    @Override
    public void run() {
        try {
            // Sleeping
            Thread.sleep(SLEEP_TIME*1000);
        } catch (Exception e) {
            Log.e(TAG, e.getMessage());
        }

        // Start main activity
        Intent intent = new Intent(SplashActivity.this, MainActivity.class);
        SplashActivity.this.startActivity(intent);
        SplashActivity.this.finish();
    }

}

@Override
protected void onPause() {
    super.onPause();
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
}

7 个答案:

答案 0 :(得分:20)

在styles.xml中,在AndroidManifest.xml中指定的主题中,添加以下行:

<item name="android:windowBackground">@android:color/black</item>

答案 1 :(得分:7)

在清单中使用此标记:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

而不是:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

答案 2 :(得分:3)

如果您想将启动画面前显示的白色屏幕更改为黑色,只需更改SplashActivity的主题,而不是整个应用程序。

您可以使用:

<activity
    android:name="your.package.SplashActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
       <intent-filter>
           <action android:name="android.intent.action.MAIN" />
           <category android:name="android.intent.category.LAUNCHER" />
       </intent-filter>
</activity>

希望这有帮助。

答案 3 :(得分:2)

您可以使用自定义主题更改起始窗口背景颜色。有关示例,请参阅Styles and Themes

答案 4 :(得分:0)

您在活动开始时设置了splash.xml。更改它,将父背景更改为黑色或您想要的任何颜色。它将工作,或将splash.xml主题更改为holo_dark或任何其他主题

答案 5 :(得分:0)

在可绘制文件夹中,创建自己的starting_screen.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <!-- black background -->
            <solid android:color="@color/colorBlack" />
        </shape>
    </item>
    <!-- launcher icon -->
    <item android:drawable="@mipmap/ic_launcher_foreground" android:height="150dp" android:width="150dp" android:gravity="center" />
</layer-list>

然后将其添加到您的样式

<item name="android:windowBackground">@drawable/starting_screen</item>

现在,每当您启动应用程序时,就会出现带有启动器图标的黑屏

答案 6 :(得分:0)

在styles.xml(适用于SplashActivity的主题)中,添加以下行

<item name="android:windowBackground">@drawable/background</item>

其中@ drawable / background是您为初始屏幕应用的背景,也可以是您需要的任何颜色。