我们在开发android应用程序时,往往会添加启动页面;这时会遇到一个问题,就是启动页面会先显示一下白色背景或者黑色背景(根据你application使用的主题不同导致白色背景或者黑色背景),然后才会显示我们需要的效果。
这是因为:activity在执行setContentView()方法后才会显示布局,所以在setContentView()方法前面不要放耗时的操作。如果activity是继承下来的,那么也要注意一下父activity的onCreate()方法不要放耗时的操作。
还有一种情况就是,题主在onCreate()方法来调用了requestWindowFeature()方法来设置全屏,这样也会导致先显示白屏(黑屏)再跳转。
解决方案:在res/values下添加一个主题如下:
<style name="Theme.beginBackground" parent="@android:style/Theme.Translucent.NoTitleBar"> <item name="android:windowBackground">@null</item> </style>然后在启动的anctivity使用该主题:
<activity android:name=".ui.WelcomeActivity" android:screenOrientation="portrait" android:theme="@style/Theme.beginBackground"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>