Android 应用启动界面自定义

MTK-Android12开机应用自启需求-自定义原生Launcher3 主界面布局图标 MTK平台 Android12 版本 上实现 开机应用自启需求-自定义原生Launcher3 主界面布局图标。添加一个属性定义即可,如下:这里自定义一个属性目的是为了在加载Launcher3启动时候从属性获取需要自启动应用的包名,可以扩展动态替换 自启动包名。这里有两种方案,要么在Launcher3里面实现,要么在系统服务里面在开机时候启动第三方一次。这里强烈建议在Launcher3中去实现,体验效果更好。// 第一步:定义属性,// 第二步:在onCreate 方法中获取属性并启动应用。 阅读详情

在新的Material Design规范中,讲到了 Launch Screens(启动界面),这里的启动界面不是大家常见的 Splash Screen,本文介绍如何在 Android 应用中实现一个自定义的启动界面。

大家都知道,当你从桌面上点击一个应用到执行该 Activity 的 onCreate() 函数是需要一定的时间的,尤其是该应用从来也没使用过的情况下,该时间会比较长。Android 系统为了让用户感觉这段时间比较短,对应用的启动过程做了一个优化。 具体情况如下:

用户从 Home 启动一个应用,系统先解析该应用启动 Activity 所使用的主题(Theme,在Manifest 文件中定义的),并根据里面定义的基本元素来绘制一个初始界面,比如根据主题中定义的状态栏颜色和窗口背景( android:windowBackground)。当系统加载完该程序的所有资源并执行启动 Activity 的 onCreate 函数之后,就把初始界面替换为该 Activity 的实际界面。

比如在一个应用中定义了窗口背景为白色、状态栏为粉红色,那么在启动的时候,系统先显示一个初始界面如下:


注意上图并没有显示 ActionBar,这说明该应用使用了自定义的 Toolbar, 在Theme 中设置了没有 ActionBar,所以这个初始界面也就没有 ActionBar了。

当系统加载完该应用的资源并执行完启动 Activity 的 onCreate 函数之后,就会显示主界面如下:


值得注意的是, theme 中的 android:windowBackground 可以使用图片资源或者其他 Drawable 资源,而不仅仅是颜色值。这样的话,就可以根据您的应用需要来实现各种的启动初始界面了。例如下面的启动界面也就很容易实现了:


最简单的方式,就是把上面的背景图作为一张大图,设置到 android:windowBackground 中,但是这样做会有一个问题,不同的 手机屏幕大小会导致该图片被拉伸,导致公司的logo变形,这可不是我们希望的。 那么可以使用如下的方式来定义这个背景图:

<layer-listxmlns:android="http://schemas.android.com/apk/res/android"android:opacity="opaque">
  <!-- 背景颜色,在上图中该颜色为黑色 -->
  <itemandroid:drawable="@android:color/black"/>
  <!-- 黑色背景上的其他图片元素,比如 一个居中显示的 logo 图标-->
  <item>
    <bitmap
      android:src="@drawable/product_logo_144dp"
      android:gravity="center"/>
  </item>
   <!-- 右上角的图标元素 -->
    <item>
        <bitmapandroid:src="@drawable/top_right"android:gravity="top|right"/>
    </item>
 <!-- 最下面的文字,注意这里有个 bottom 设置 -->
    <itemandroid:bottom=”@dimen/product_text_bottom”>
        <bitmapandroid:src="@drawable/bottom_text"android:gravity="bottom"/>
    </item>
</layer-list>

注意上面的 android:opacity=”opaque” 属性,这个是为了防止在启动的时候出现背景的闪烁。

在您的启动 Activity 的自定义 主题中设置  android:windowBackground 的值为 上面定义的 layer-list ,然后在 AndroidManifest.xml  中设置启动 Activity 的主题为该自定义主题,例如 android:theme=”@style/AppTheme.Launcher”。注意: 要设置到启动的 Activity 上而不要设置该主题到 Application 上,这样就导致所有 Activity 都具有该效果了。

当 Activity 启动后要切换正常的主题只需要在 onCreate 函数中调用 setTheme 函数即可(注意:需要在 super.onCreate 函数之前调用),例如:

publicclass MyMainActivity extendsAppCompatActivity{
 @Override
  protectedvoid onCreate(Bundle savedInstanceState) {
    // 必须在 super.onCreate 之前调用
    setTheme(R.style.MyTheme);
    super.onCreate(savedInstanceState);
    // ...
  }
}

使用这种方式实现的 启动界面类似于效果上类似于传统的 Splash 界面,但是有很多好处:

1. 没有额外的 Splash Activity,我看到过很多开发者为了实现 设计师要求的 Splash 界面,单独使用一个 Activity 来显示 Splash 界面,并且等待一段时间(比如 5秒)后再 finish 该界面。

2. 没有额外的性能损耗,这是利用系统特性来实现一个启动界面,并不需要单独实现一个 Activity 来消耗系统的资源。

3. 没有额外的过度绘制。在 onCreate 函数中重新设置为正常的 theme,可以把自定义的启动背景图给删除掉,避免主题背景和自定义 View 背景造成的过度绘制。 你也可以通过  getWindow().setBackgroundDrawable(null); 来清除该自定义启动背景。

4. 启动速度更快。由于没有额外的 Splash Activity,启动速度当然很快。给用户带来愉悦的体验。

构建Android应用启动界面的实战示例 在Android应用中实现全屏启动界面能够给用户带来更加沉浸的体验。我们可以使用全屏主题或者编程方式来隐藏状态栏和导航栏,实现全屏效果。代码示例:在中为启动Activity指定主题:自定义应用主题和样式可以使得启动界面与其他界面风格保持一致,或者按照应用的品牌形象进行设计。在styles.xml中定义应用的样式:</style>应用样式:</style>是一个可绘制的XML文件,通常包含一个启动图片或全屏颜色。 阅读详情

相关推荐

波束形成算法:LCMV实现(MATLAB)

阵列信号处理,波束成形,

weixin_43601588的博客 1万+

Android自定义启动界面以及初次运行界面

Android的启动界面以及初次运行界面的自定义

wcs_sdu的博客 4535

SVA学习笔记(1)——property基本语法及巧用define与property

巧用define与property,让代码更加灵活

craftsman2018ship的博客 1574

Android开发:设置启动页面

在AndroidManifest.xml中进行设置,主要是挪一下代码的位置 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 把上面的代码挪到要启动的activity中,如: 原本是启动页面是Main.

游手好闲 4462

【Python&RS】Rasterio库安装+基础函数使用教程

Rasterio是一个Python库,专门用于栅格数据的读写操作。它支持多种栅格数据格式,如GeoTIFF、ENVI和HDF5,为处理和分析栅格数据提供了强大的工具。RasterIO适用于各种栅格数据应用,如卫星遥感、地图制作等。这篇文章跟大家介绍一下Rasterio库的安装以及一些基本函数的使用教程,附带源码。

Remote Sensing迷途小书童 1万+

海康机器人ID5000 系列智能读码器(三)

又過了兩個月,漸漸的對這個攝像頭的功能更加熟悉了,而實際上,我要做的功能也越來越複雜,從一開始的讀碼,到後來的通過讀二維碼控制設備,再到未讀到二維碼控制設備等,下面就對具體的細項做一個總結。了解完這些就能對ID5000這個設備,乃至很多海康的設備都能做一個二次開發。

qq_54359036的博客 3071

安卓使用平板在activity的设置启动页的横竖屏显示

今天项目使用平板,为了使activity横屏启动,需要在清单文件的activity里设置。     android:screenOrientation="landscape">                       下面解析不同的属性: 1.screenOrientation=landscape 是横屏显示 2.若为portrait":竖屏显示。 3

hustwbyuanyi的博客 2716

LAMMPS实例教程—In文件详解

本博文主要介绍专栏 《LAMMPS实例教程—In文件详解》, 针对于 Lammps 可分析的物理过程进行讲解,提供 In 文件以及后处理方法,持续更新。 目前分为8个专题: 1)力学专题、2)传热专题、3)相变专题、4)界面专题、5)吸附专题、6)流动专题、7)物性专题以及8)基础理论专题。

Rockyoung 3万+

Android--设置App的启动页面

几乎所有的app,在启动进入主页的过程中,都会先显示一张图片然后再进入app主页。其实如果不设置这张图片的话,默认就是白色背景,给用户的体验不好。如果就只是这样设置的话,我们会发现,在启动页完成并到达主页之后,这个背景图片还存在,所有我们需要重新将app的主题设置成原来的那样。找到app/src/main/res/values下的themes文件。在AndroidManifest.xml文件中设置这个主题。新建一个style,并写入以下三个子项。...

qq_46653910的博客 8800

10、硬件工程师笔试面试——继电器(2025版本)

在设计电路时,应综合考虑SSR的优势和局限性,确保选择合适的型号,并采取适当的设计措施来优化性能和可靠性。继电器的主要功能是利用较小的电流或电压来控制较大电流或电压的电路,实现信号的放大和隔离。在处理继电器故障时,应综合考虑电源、线圈、触点和负载等因素,及时进行故障诊断和处理,以确保电路系统的稳定性和安全性。由于汽车电子系统的复杂性,继电器的设计和选择必须考虑到系统的特定要求,包括电流容量、电压等级、环境条件(如温度、湿度、振动)以及所需的保护和隔离功能。确定线圈的工作电压或电流,以及吸合电压或电流。

XU157303764的博客 3733

AI自瞄原理剖析(四)从Yolo推理坐标到屏幕坐标:基于FOV视角与焦距的坐标变换与精准瞄准

从Yolo推理框架得到的坐标到屏幕坐标的转换是一个涉及到FOV视角、焦距以及分辨率的复杂过程。通过数学公式,我们可以将推理框坐标反推为游戏内的实际坐标,并最终映射到屏幕坐标系中。利用这些信息,AI自瞄系统能够精确计算出准星从当前位置移动到敌人位置的距离,实现精准的自动瞄准。通过这种方法,AI自瞄系统能够在不同的游戏环境下灵活应对,提供高度精确的操作体验。在AI自瞄系统中,目标检测仅仅是第一步,获取到预测框的坐标后,我们还需要将这些坐标转换为实际屏幕上的精确位置。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1334

Android自定义桌面

  android自定义桌面其实很简单,看一个例子就明白了,先上运行效果图:      首先我们要把一张自己喜欢的图片放到sdcard中,总之,只要我们可以获取这个图片就可以了。   我这里是放在sdcard中的,可以在eclipse中用鼠标点击导入,比较方便,也可以在命令行中运行:   C:\Documents and Settings\Administrator>adb...

weixin_30799995的博客 205

11、RK3566/3568 Android11切割屏幕 长条屏 显示

在使用 RK3566 平台进行 Android 11 开发时,遇到切割屏(长条屏)显示画面不全。本文将详细介绍如何配置,以及如何修改 HWComposer 来调整显示区域,解决图像缩放问题。我这边屏幕是lvds接口的,分辨率1920 1080实际的屏物理尺寸是1920x463。

qq_39451352的博客 252

Android应用程序启动界面

最近在写安卓程序。许多优秀的APP启动界面都十分好看。启动之后出现一个Splash启动界面。 今天学到了一个方法。 使用两个Activity,利用线程造成一定的延时来执行Activity的跳转。所以添加一个SplashScreen,用来做为启动画面。另外一个就是我们自己真正的Activity。 下面是SplashSreen.java代码。 package cn.csu.demo;

NonShan的专栏 1084

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

安卓android8.0启动器,安卓8.0桌面启动器OO Launcher

安卓8.0真的来了,界面看起来非常的清爽,测试版不建议大家使用,不过可以装一下启动界面,还不错呢,OO Launcher是一款高仿安装8.0的桌面启动器,采用全新的安卓8.0风格,流畅,极致,此版本去广告,欢迎各位机友下载。应用介绍【专注美-个性主题】二次元宅腐基酷炫萌甜动态桌面任你选,支持在线制作主题;【发现美-桌面管理】应用智能分类,社交娱乐生活学习游戏文件夹发现更多;【致力美-便捷工具】一键...

weixin_36221149的博客 1340

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

定制android启动界面

本文想要说的是如何定制android设备启动后进入的初始界面,具体说来就是目前android默认起来以后直接进入,现在想给它加一些其他的选项,如图所示:在这里你可以选择home进入android平台自带的默认系统,也可以选择Myhome进入你自己定制的系统。那么如何实现这个启动界面的定制呢,其实很简单:创建一个新的项目Myhome,然后编辑它的manifest.xml文件:

a3015440的专栏 377

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

AndroidImageKitchen:安卓开发者的镜像定制神器

AndroidImageKitchen:安卓开发者的镜像定制神器 【下载地址】AndroidImageKitchen使用说明 Android Image Kitchen 是一款专为Android开发者和高级用户打造的工具,旨在简化boot.img文件的编辑过程。它提供直观易用的界面,支持高度自定义,允许用户轻松修改启动画...

gitblog_06742的博客 3599

利用ViewGroup实现引导界面

参考博文 App在首次启动时,有一个引导界面,不仅可以给用户绚丽视觉效果,同样可以让用户了解你的App. 下面就来利用自定义ViewGroup来实现安卓的引导界面: 首先我们来实现界面布局:<com.example.timor.myfirsttext.view.welcomeView xmlns:android="http://schemas.android.com/

wangchao2015的博客 373

FW:定制android启动界面

定制android启动界面 http://blog.youkuaiyun.com/sijiangong/archive/2009/08/12/4440037.aspx   本文想要说的是如何定制android设备启动后进入的初始界面,具体说来就是目前android默认起来以后直接进入,现在想给它加一些其他的选项,如图所示:   在这里你可以选择home进入android平台自带的默认系统,也可以选

zxg519的专栏 611

WSA-Pacman:Windows安卓应用管理的革命性解决方案

WSA-Pacman是一款专为Windows Subsystem for Android (WSA)打造的GUI包管理器和应用安装工具,它彻底改变了Windows用户管理安卓应用的方式。这款免费工具提供了直观的图形界面,让即便是新手用户也能轻松完成安卓应用的安装、卸载和管理,无需复杂的命令行操作。 ## 为什么选择WSA-Pacman? 对于希望在Windows系统上运行安卓应用的用户来说,W

gitblog_00502的博客 710

【随便做的翻译】《Unity:由此开始的安卓开发》

原文:Getting started with Android development 版本:2018.2 更新:2019年5月24日14点02分,勘误一些内容。 前言 Unity手册中的《建立安卓环境》(同人翻译点此)主题包含了一个你能且仅能在安卓终端,或是安卓模拟器上运行代码的基本概要。有关安卓开发环境设置的进阶信息,请参考安卓软件开发工具包中的逐步说明。 若你在建立安卓环境时没有安...

AlexDialga的博客 337

如何修改android主界面上默认的应用程序快捷方式

<br />1、在进入android系统中,在主界面上会默认创建几个应用程序的快捷方式,现在我想按客户的意愿,随意创建。<br />方法:<br />2、在android系统启动时,会默认安装几个应用程序,现在我想将自己的应用程序变成默认安装。<br />方法:

yinwei520的专栏 3716

mytv-android:让安卓4.4电视重获新生的开源方案

### 症状诊断:当智能电视变成"卡慢钝" 2014年的智能电视正经历"数字衰老"。开机5分钟,播放10分钟就闪退。这不是硬件报废,而是系统与应用的"代沟"。 安卓4.4系统像老式收音机,现代应用则是智能手机。两者不兼容。原厂停止更新,应用不再支持,1GB内存被现代应用轻易占满。 ### 数据透视:老旧设备生存现状 | 设备问题 | 传统应用表现 | mytv-android优化 | |---

gitblog_00216的博客 294

android 设置启动画面,Android开发中简单设置启动界面的方法

本文实例讲述了Android开发中简单设置启动界面的方法。分享给大家供大家参考,具体如下:启动界面的意义是为了让后台处理耗时的复杂工作,当工作处理完成后,即可进入主界面。相比让用户等待布局加载完成,使用一张图片作为启动背景,会带来更好的体验。首先,需要建立一个简单的布局:android:layout_width="match_parent"android:layout_height="match_...

weixin_39559097的博客 871
上一篇: Android的HTTP客户端选择及HttpResponseCache的使用
下一篇: 退避算法
Inconsolabl
博客等级 码龄15年 5粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值