Android 正确的启动页设置姿势

启动页是一个 APP 启动时用户第一眼看到的界面,通常我们是将产品的logo或者名称放在上面,以便加深用户的产品印象。一个好的产品体验从你点开 APP 图标就开始了,通常我们为了防止启动应用时出现卡顿,需要对启动页进行一些优化。

普通的 SplashActivity

通常情况下,我们只需要设置 SplashActivity 为启动页并将其全屏,之后在 SpalshActivity 中贴上背景图就行了。这也是大家经常使用的方法。

首先在 style.xml 文件中创建全屏的主题属性

<style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="AppTheme.Full" parent="AppTheme.NoActionBar">
        <item name="android:windowFullscreen">true</item>
    </style>

然后在 AndroidManifest.xml 中使用

<activity
    android:name=".SplashActivity"
    android:theme="@style/AppTheme.Full">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

之后就可以在 SplashActivity 设置产品的logo图片以及其他要展现的说明。

启动时黑屏(或者白屏)了怎么办?

为什么会黑屏或者白屏呢?因为从用户点击 APP 图标进去到第一个 Activity,系统会进过一系列的 Framework 层操作,其中包括 Application 的初始化,如果在 Application 初始化过程中做了过多操作,就会导致应用已经启动了却迟迟没有界面显示出来。

一种优化方案是将黑屏或者白屏透明化,也就是说当你打开应用时你会在桌面上停留一会(恩,看起来就像系统卡住了一样),当应用准备好之后自然就会跳到第一个启动 Activity。

实现透明化也很简单,我们再新建一个主题样式

<style name="AppTheme.Splash" parent="AppTheme.Full">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>

其中 android:windowIsTranslucent 为关键,将其设置为 true。

在代码里为先前的 SplashActivity 的 theme 设置为

android:theme="@style/AppTheme.Splash"

另一种方案是用一张图片替换原来的默认的黑色背景(或白色),将上面的 Splash 样式修改一下

<style name="AppTheme.Splash" parent="AppTheme.Full">
        <item name="android:windowBackground">@drawable/splash_bg</item>
    </style>

注意,如果图片的尺寸没有适配机型的话图片会被拉伸。

这样子做的优点是可以完全用 windowBackground 来替换 SplashActivity ,但缺点也很明显,这样做很死板,无法自定义启动页,比如说给其加一个动画效果什么的都不能实现。

总结

两种方案:

使用普通的 SplashActivity

作为启动页,你可以拥有一个自由的页面,可以在上面肆意妄为,但记住不要在 Application 创建时做太多工作,以免拖慢启动速度。

  • 尽量不将一些业务逻辑放于 Application 中;
  • 不以静态变量的方式在 Application 中保存应用数据;
  • 不要把文件、数据库的操作放在 Application 中。

使用 windowBackground 代替 SplashActivity

你可以完全不用操心启动页如何实现了,只要做好背景图片对不同分辨率机型的适配就行了。你可以在 Application 加上一些必需的初始化,再也不怕 Application 过长的初始化时间拖慢应用的启动时间了。

不同的需求选择不同的方案,当然也有人说我两种都用可以吗?当然可以!嘛,你开心就好。

 

来自:http://www.jianshu.com/p/7e2983b65ead

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值