高效启动页(Splash)

很多应用程序启动时都需要一个页面展示公司品牌或者Logo,或者即便不需要这个页面,如果布局比较复杂,启动应用的时候会有一个短暂的白屏(跟系统主题相关),往往我们会单独写一个Activity,然后显示一张图片或者Logo,设置固定的时间延迟启动真正的MainActivity,这样未免小题大做,分享一个小技能:

  • 首先使用layer-list定义一个层级的drawable:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@color/background_material_light"/>
    </item>
    <item>
        <bitmap
            android:src="@drawable/launch_logo_image"
            android:tileMode="disabled"
            android:gravity="center"/>
    </item>
</layer-list>

定义底色和一个bitmap展示Logo,Logo居中显示,超出bitmap大小的区域不进行平铺或者其他处理;

  • 然后应用到全局背景中(应用启动时,会先渲染主题,如果没有设置默认使用系统的主题):
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
 
<style name="AppTheme.BrandedLaunch" parent="AppTheme">
    <item name="android:windowBackground">@drawable/branded_logo</item>
</style>
  • 入口Activity设置主题:
<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/AppTheme.BrandedLaunch">

由于这样会改变整体的主题,想回到原来的系统默认主题可以在onCreate中动态更换:

@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.AppTheme);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

之前会在应用启动前,显示一个短暂的白屏:

使用这种方式后:

是不是舒服很多。

参考自antonioleiva,源码Github repository

时间: 2024-10-11 23:15:11

高效启动页(Splash)的相关文章

Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法(转)

转载: Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法   首先感谢博主分享,本文作为学习记录 惊鸿一瞥 微信的启动页,相信大家都不陌生. 不知道大家有没有发现一个现象,微信每次启动的时候,是直接进入这个启动页面. 我的意思是,很多应用,往往会先白屏停顿一下后再进入启动页面(Splash).为了印证这一点,我把手机上所有的App都点了一遍.选几个例子 如下图: 微信:  斗鱼:  斗鱼和微信是直接进入了,他们的Splash页面. 知乎:  B站:  知乎和B站要先

app为什么要有启动页(Splash screen)

1.包名(Package name)在Android系统中是判断一个App的唯一标识. 2.启动页Activity简单的来说Activity指的就是App中我们看到的页面,一个页面就是一个Activity,通常第一页启动起来的页面我们就称之为 "启动页Activity". 3.为什么要有启动页(闪屏) ①闪屏首先是交互的响应,就像一个按钮凸起,点击它如果没有凹陷或者变色等变化,用户会觉得不可点击或者是木有反应,卡机,垃圾.闪屏就是一个最直接迅速的交互响应. ②其次,通过闪屏可以有效捕捉

android开发 解决启动页空白或黑屏问题

遇到的情况: app启动时进入启动页时出现白屏页,然后大概一秒之后就出现了背景图片. 原因:app启动时加载的是windows背景,之后再加载布局文件的,所以开始的黑屏/白屏就是windows的背景颜色,因此我们只要在启动页设置windows背景颜色就好了,那么在哪里设置呢?  就是theme里面. 解决办法:参考:[Android Drawable 那些不为人知的高效用法] [Android 启动APP时黑屏白屏的三个解决方案] 首先看之前的布局文件xml写法 <?xml version=&quo

Salesforce的SplashPage(启动页)-一天一个标准功能系列

最近有小盆友考验我,说客户想点进Tab的时候先进入一个Guide页面,然后点击继续进入list页面,点击Don't show again下次不再显示此页面,直接进入List页面.问我该怎么做. 我反问,"你想怎么做?""首先呢,建一个Tab""废话.哪种Tab.""当然是Visualforce Tabs.""然后呢.""然后我创建一个VF,并且使用标准标签和样式.""嗯,为了让

Cocos2dx Android 启动页的设置

cocos2dx android上的启动页的设置实际都差不多,在网上看了一些资料,很多人都是重新弄了一个Activity作为启动页,这样子是没问题,但是在cocos2dx android上中间会有一个很长得黑屏时间,这主要是在加载一些资源:启动页的还有一种做法是直接在主页面上写,实现请参考 Android应用启动界面的实现方法 这篇博客个人感觉还是写的不错的,好了现在实现cocos2dx android上的启动页方法实现如下: 我采用的cocos2dx 3.2的版本. 在AppActivity里

Android引导页Splash设计

Android_Splash引导页就是在应用第一次安装时用来介绍应用的部分功能的动画页面,让用户大致的了解这个应用有啥功能.当用户首次安装时会有引导页面,用户下次启动的时候,就会直接进入主页面. SpUtils.java package com.zwb.splashdemo.utils; import android.content.Context; import android.content.SharedPreferences; /** * 类描述:SharedPreferences工具类

Ionic3.x设置启动页与图标

由于手机有很多不同的尺寸与版本,所以图标尺寸也是大小不一,但是如果手动每一个尺寸都制作一个图标,那估计美工会吐血吧,不过幸好,ionic只需要一个图标就可以制作不同尺寸的图标. 添加一个ionic项目,进入cli添加一个ionic platform add ios 或 ionic platform add android,ionic会默认给项目添加一个resources的文件夹,里面包含icon(图标)和splash(启动页). 第一步:把resources下的icon和splash换成当前AP

Xamarin.Android 启动页

打开软件的时候相当慢,会有白屏显示,这样的用户体验效果不好,所以需要增加一个启动页来过渡.步骤如下: 第一步:根据自己需求找到一个png图片,用于启动展示,放在Drawable 文件夹下,我这里命名为Loading.png. 第二步:在Drawable 文件夹下创建 splashscreen.xml,用于展示Loading.png. <?xml version="1.0" encoding="utf-8" ?> <bitmap xmlns:andr

React-Native图标、启动页、打包

上传图片至 http://makeappicon.com/ 邮箱下载 下载文件 ios/AppIcon.appiconset 文件夹整体复制 覆盖工程ios/工程名/Images.xcassets/AppIcon.appiconset 重启工程 工程修改名称 sublime打开 ios/工程名/Info.plist <key>CFBundleDevelopmentRegion</key> <string>zh_CN</string> <key>C