美文网首页
打造启动页面

打造启动页面

作者: 笑叶林 | 来源:发表于2018-07-20 11:35 被阅读153次

启动页面

目前,很多 Android 应用都有一个启动界面 (Launch/Splash Screen),即应用在从桌面或应用抽屉启动的过程中,显示的一个有内容的界面,而不是一个空白页;在应用运行时,启动界面则不会出现。

根据 Material Design 的定义,启动界面可分为两种:

  • 一种是应用在数据加载过程中显示的不可交互的占位符界面 (Placeholder UI),它适用于应用启动以及应用内 Activity 切换的场景,好处是让用户感知数据正在加载,而不致于误认为应用无响应。在此暂不讨论这种启动界面。

  • 另一种是专门在应用启动时显示的品牌页 (Branded Launch Screen),它可以在应用启动的短暂时间内展示应用的品牌信息,这有利于提升应用的品牌辨识度。例如以下三款应用的启动界面都显示了自家应用的 logo;另外,也可以显示应用的品牌口号,不过要避免使用需要用户仔细阅读的大段文字。

方式一

分为3个步骤:

    1. 设置主题元素
    1. 定义启动界面
    1. 切换应用主题

1. 设置主题元素

In res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name=”AppTheme.Launcher”>
        <item name="android:windowBackground">@drawable/launch_screen</item>
        <!-- Optional, on Android 5.0+ you can modify the colorPrimaryDark color to match the windowBackground color for further branding-->
        <!-- <item name="colorPrimaryDark">@android:color/white</item> -->
    </style>

</resources>

由于启动界面只在应用启动瞬间显示,所以不能直接在 AppTheme 中直接修改主题元素,而是需要新建一个继承 AppTheme 的 Launcher Theme,命名为 AppTheme.Launcher,并且只修改其中的 android:windowBackground 属性为想要的 drawable 资源即可。对于 Android 5.0 及以上的设备,还可以修改 colorPrimaryDark 属性为匹配启动界面的颜色,提供更好的视觉效果。

2. 定义启动界面

In res/drawable/launch_screen.xml

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">

    <!-- The background color, preferably the same as your normal theme -->
    <item android:drawable="@android:color/white"/>

    <!-- Your product logo - 144dp color version of your app icon -->
    <item>
        <bitmap
            android:src="@drawable/product_logo_144dp"
            android:gravity="center"/>
    </item>
</layer-list>

在上面 AppTheme.Launcher 主题中 android:windowBackground 属性设置的 drawable 资源不能是一个图片,因为图片会拉伸至整个屏幕的尺寸;所以这里需要定义一个 XML 文件来设置启动界面。注意 layer-list 的 android:opacity 透明度属性要设置为 opaque(不透明),以防主题转换时发生闪屏的情况。

3. 切换应用主题

设置好 Launcher Activity 在应用启动瞬间应用的主题后,即可在 AndroidManifest.xml 中设置好,这样 Launcher Activity 就默认使用 AppTheme.Launcher 主题了,使启动界面得以显示。

In AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <application ...>
        <activity
            android:name=".MainActivity"
            android:theme="@style/AppTheme.Launcher">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

不过,在调用 Launcher Activity 的 onCreate() 时,其主题应该切换回 AppTheme,这里在 super.onCreate() 之前通过 setTheme(R.style.AppTheme) 设置好。

In MainActivity.java

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // Make sure this is before calling super.onCreate
        setTheme(R.style.AppTheme);
        super.onCreate(savedInstanceState);
        // ...
  }
}

方式二

新建一个专门的 Splash Activity,使其作为应用的 Launcher Activity;也就是说,应用启动时,启动界面显示完即跳到 Splash Activity 中,随后再跳到其它 Activity。虽然这样增加了 Activity 之间切换的延时,不过应用可以实现根据不同的启动状态跳转到不同 Activity 的功能。在此不过多讨论。

欢迎关注我

简书:https://www.jianshu.com/u/5f3130bdf4fc

Github:https://github.com/huangziye

相关文章

  • 打造启动页面

    启动页面 目前,很多 Android 应用都有一个启动界面 (Launch/Splash Screen),即应用在...

  • RN react-navigation-stack跳转到新页面并

    问题 启动页面过渡动画结束后跳转到登录页面,在登录页面点返回键不允许回到启动页面。 即在启动页面跳转到登录的时候关...

  • 页面启动

    对比服务启动,页面启动相对就一种方式,命令行方式启动即使使用工具也是调出命令行面板键入命令启动,下面来看启动命令吧...

  • 启动页面

    白屏问题 2277!!注释掉 setContentView(R.layout.activity_splash);...

  • App白屏和启动优化的一些思路

    App启动优化 App启动优化原理与技术方案 启动优化 黑白屏问题 启动页面主题设置为图片 启动页面,不要再onC...

  • java servlet

    web.xml设置启动页面 启动页面

  • flutter设置启动页和欢迎页

    启动页是程序每次启动都会显示的页面.这里处理的办法就是进入程序后跳转这个页面,折腾页面作为启动页,然后再根据判断有...

  • 性能优化-绘制优化

    前言 卡顿场景可分为以下四类: UI绘制:绘制、刷新 应用启动:安装启动、冷启动、热启动 页面跳转:页面间切换、前...

  • 腾讯推出芒种计划,自媒体将星火燎原?

    3月1日下午,由腾讯公司打造的“芒种计划”在北京正式启动。该计划提出,入驻媒体/自媒体在文章页面上获得的所有...

  • AppiumDesktop

    AppiumDesktop启动页面: 修改中文 启动AppiumDesktop以后点击该页面右上角的Start N...

网友评论

      本文标题:打造启动页面

      本文链接:https://www.haomeiwen.com/subject/mamfmftx.html