设置启动Theme
设置启动Theme可以去除启动白屏的情况,同时从视觉效果上感觉app启动速度加快了
原理
在app启动时,会先加载一个空白window
,然后再启动app
进程,Theme
就是作用于该空白window
上的
设置
创建一个
drawable
。注意:图片宽高最好是比屏幕较大的手机还要大一些,核心内容较为居中,这样能够兼容屏幕较小的手机且图像不会拉伸变形1
2
3
4
5
6
7
8
9
10
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white"/>
<item>
<!--图片最好是能够覆盖屏幕较大的手机-->
<bitmap
android:src="@mipmap/img_splash_bg"
android:gravity="center"/>
</item>
</layer-list>创建主题
1
2
3
4<style name="LauncherTheme" parent="parent">
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@drawable/launcher</item>
</style>为启动
Activity
设置该主题1
2
3
4
5
6
7<activity android:name=".SplashActivity"
android:theme="@style/LauncherTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>在
Activity
中的onCreate
方法中将主题切换回来1
2
3
4
5
6
protected void onCreate(Bundle savedInstanceState) {
// 在这里将主题切换回来
setTheme(R.style.Theme);
super.onCreate(savedInstanceState);
}