如果启动页不需要更换图片:
- 添加主题
<style name="Theme.SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowFullscreen">true</item>
<item name="android:fitsSystemWindows">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:clipToPadding">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
</style>
- 使用主题
<activity
android:name=".splash.SplashActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@style/Theme.SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
- SplashActivity设置透明背景
如果启动页需要更换图片:
- 添加主题
<style name="Theme.SplashActivity" parent="Theme.AppCompat.NoActionBar.FullScreen">
<item name="android:windowBackground">@color/white</item>
</style>
<style name="Theme.AppCompat.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.NoActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
- 使用主题
<activity
android:name=".splash.SplashActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@style/Theme.SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
这样的效果是第一屏为白屏。如果将
android:windowBackground
设置为一张启动图,白屏就替换为启动图了。然后在xml中将SplashActivity的background设置为color/transparent 就能一直显示启动图了。之后再加载新的图片也完全OK, 布局参数设置为match parent即可,或者将新图设置为SplashActivity的background。