这可能是刚入android的小老弟会遇到的app优化问题,即当点击app图标后会先出现一个空白页(当前多为纯白)随后进入我们的启动页,这个骚操作其实是谷歌为了给用户在点击app图标后迅速响应的良好用户体验设计的,因为一个App加载时或多或少会有一些初始化操作,而这个时间取决于手机性能。
那么我们怎么处理这种情况呢,毕竟一个小小的白屏闪过也足以要了一个资深强迫症患者的命,现在就开启拯救世界之旅!!!
纵观现在App届各扛把子,基本是这样处理的,以网易云音乐为例
启动页分为两部分,一是整体红色背景和“音乐的力量”,二是底部的网易云音乐。
越来越多的app倾向于这种设计,简洁大方而富有冲击力,从技术上说内容越简洁越容易适配,而整个红色背景用代码实现也节省了不必要的体积。
1.先自定义一个style
<!--parent为父类,设置隐藏标题栏 -->
<style name="AppTheme.LAUNCHER" parent="@style/Theme.AppCompat.DayNight.NoActionBar">
<!-- 设置背景 -->
<item name="android:windowBackground">@drawable/launch_layout</item>
<!-- 设置全屏 -->
<item name="android:windowFullscreen">true</item>
</style>
2.launch_layout
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@android:color/holo_red_dark"></item>
<item
android:width="150dp"
android:height="150dp"
android:gravity="center_horizontal"
android:top="150dp">
<!-- 设置你的icon,我直接放的系统自带启动图标 -->
<bitmap
android:src="@drawable/ic_launcher"/>
</item>
</layer-list>
3.需要注意的是“网易云音乐”这个字或图片是放在启动Activity的布局中的。
也就是说到启动Activity的布局会叠加显示,在Actvity就可以写我们所需的操作,如倒计时按钮,或者进入广告页或引导页等等。
4.最后AndroidManifest中给启动Activity设置style
<activity
android:name=".SplashActivity"
android:theme="@style/AppTheme.LAUNCHER">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
到此这个小小的黑白屏优化到此结束,有兴趣的可以试下。