我们在打开APP时仔细观察的话会发现QQ,微信之类这些软件打开时和一些软件打开时有一些不一样的地方,有些APP打开时会闪一瞬间的白屏,如果手机卡的话白屏的时间会很长,对用户体验不是很好。我在网上查了相关资料,做了一些相关的改进,在这里进行记录。
分析问题:
软件打开的时候之所以会闪白屏是在还没有加载activity的布局之前显示的主题,主题一般默认为白色,或者黑色。所以我们看到的白屏或者黑屏就是因为这个原因。
思路:
原因找到了,那么我们就要解决这个问题。我们对这个activity的主题进行修改,让这个主题的背景图片为我们要显示的欢迎页面的图片,这样的话对于用户而言打开APP显示的就是我们的欢迎页,可以相对增强用户体验
步骤:
1.打开value文件夹下的Styles.xml文件,添加主题
- <style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar">
- <!--这是我们需要设置的背景图片-->
- <item name="android:background">@mipmap/splash_bg</item>
- <item name="android:windowNoTitle">true</item>
- <item name="android:windowFullscreen">true</item>
- <item name="windowActionBar">false</item>
- <item name="windowNoTitle">true</item>
- </style>
2.打开清单文件,将我们要添加的主题添加到对应的activity中
- <activity android:name=".view.splash"
- android:theme="@style/ThemeSplash"
- >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
主题添加好之后我们在刚开始进入这个activity加载布局之前就会显示我们要设置的图片,之后的是我们在布局文件里设置背景图片,handler定时跳转到Mainactivity,相信各位同学这方面就不需要多说了。
ps:不要把主题设置到application中这样的话是全局主题每一个activity中的主题都是那个图片。一定要把主题设置到对应的activity中。因为是欢迎页所以直接设置到filter所在的activity中就行。