如何在Android中加载第一个活动之前删除白屏?

时间:2013-11-26 17:04:49

标签: android

每当我启动我的应用程序时,标题栏的开头会出现一个白色屏幕。我不希望这个屏幕出现在我的应用程序中。我已经阅读过以前的问题,但答案对我来说并不清楚。

我也在使用启动画面,但在此之前会出现白屏。

我不想更改主题样式,因为它会增加最小sdkVersion或更改e​​dittext,按钮,复选框等的样式

请帮助我让我远离这个。

谢谢。

4 个答案:

答案 0 :(得分:3)

前言:对于这样的问题,您应该发布您的起始活动xml和onCreate()以及相关的方法。

当android启动你的应用程序时,它通常会使用黑色视图来表示它正在启动,这是我选择了你的主题/风格的白色更改。如果您正确加载视图,那么您应该只看到这个空白(白色或黑色)页面50-200毫秒(我现在找不到谷歌文档)。如果您在onCreate方法中做了大量工作,则需要更长的时间。

通常,为了让我的视图显示更快,我只需在加载后完成大部分链接工作。例如:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.initial_activity_layout);

    //We use a handler so that the activity starts very fast
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            delayedInit();
        }
    }, 100);
}

此外,移动应用程序通常不应该有启动画面,除非它们需要很长时间来加载内容(例如游戏,首次启动文件等),不应该使用只是来为您的应用程序打上品牌,或显示您的公司名称。

更新(2015年7月31日)

Google应用程序现在正朝着启动闪屏的方向发展(请参阅驱动器,GMail等)

此外,除了在onCreate()方法中取消引用视图之外,您不应该做任何其他工作。任何长时间运行的操作,例如从内存中检索信息(数据库,prefs等)都应该在AsyncTaskLoader或AsyncTask中完成。

答案 1 :(得分:0)

如果您正在使用AppCompatActivity,请在style.xml中创建以下主题:

<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsTranslucent">true</item>
</style>

在SplashActivity的清单文件中添加主题:

android:theme="@style/Theme.Transparent"

答案 2 :(得分:0)

1-在您的style.xml中将windowDisablePreview设为false

<item name="android:windowDisablePreview">false</item>

2-在您的style.xml中添加windowBackground。

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

答案 3 :(得分:0)

在编写初始屏幕时,在初始屏幕主题中添加以下行

<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>