在我们开发App的启动过程中我们会经常发现如果说我们在Application中有了太多的耗时操作,那么在启动的时候就会有一个白的页面或者黑的页面才能到欢迎页面,而我们常用到的比如说京东会有一个京东的静态页面,然后出来的是广告页面即欢迎页面,还有就是微信这样的,我们在点击过后可能会经历了一段时间才能到主页面。
首先我们分析下出现白的页面是什么原因,为了保证出现,我在我的Application中进行了一个for循环输出,循环了20000次。先说下我的欢迎页主题。
<style name="AppTheme_Launcher" parent="Theme.AppCompat.Light">
</style>
这个保证了我出现的页面是个白页面,因为我的主题是Light。我们继续查看我们的主题父类大概是一个这样的流程
Theme.AppCompat.Light
Base.Theme.AppCompat.Light
Base.V7.Theme.AppCompat.Light
Platform.AppCompat.Light
Base.V7.Theme.AppCompat.Light
Platform.AppCompat.Light
<item name="android:windowBackground">@color/background_material_light</item>
我们会发现出现白色页面的原因就是上面的最后一段代码,那么我们能不能修改这个item实现定制呢?答案是必然的,京东就是这样做的。
我修改了我的欢迎页面的Theme,把这个颜色更改了,出现的结果是我更改的颜色,下面贴出我的代码
<style name="AppTheme_Launcher" parent="Theme.AppCompat.Light">
<item name="android:windowBackground">@color/color_dfa043</item>
</style>
既然可以换颜色,我们当然想换成一个图片,这就是京东实现的原理。代码还是贴一下吧,水个字数。
<style name="AppTheme_Launcher" parent="Theme.AppCompat.Light">
<item name="android:windowBackground">@mipmap/splash</item>
</style>
按照上面的配置大家就能在App启动耗时的时候进行个简单的优化了,不至于让用户看着个白色的页面发呆。
下面我们说下微信的实现方式,微信的实现方式也用到了我们上面说的,但是微信没有显示这个图片,微信用了另一种方式,不让大家看到这一步,这一步是进行了,但是隐藏了,然后大家看到的就是微信的主页面了。贴下代码先
<style name="AppTheme_Launcher" parent="Theme.AppCompat.Light">
<item name="android:windowBackground">@null</item>
<item name="android:windowDisablePreview">true</item>
</style>
好了,到这里,基本上我昨天上课的第一部分的核心使用就差不多完结了,这里我们要想到,我们已经这样做了,那么我们能不能把别的item也修改了呢,这样就实现了完全的自定义,也可以更随心所欲了。