Android 9.0 SystemUI状态栏/快捷设置介绍

Android 9.0 SystemUI状态栏/快捷设置介绍

  1. 状态栏
    状态栏是SystemUI里的重要功能之一,状态栏的一大功能就是显示功能图标,以告知用户一些最基本的信息状态,在 Android 9.0 版本中,状态栏一般包含运营商信息、时间、日期、电池、通知图标、系统图标。 为了适应刘海屏功能,android9.0 对状态栏图标的显示做了较大的修改,主要是预留出刘海的区域,防止图标被刘海遮挡。状态栏的启动过程大致如下图所示:

从流程上看,整个过程相对比较简单,主要是在 StatusBar.java 里加载相关布局,根布局是StatusBarWindowView,其中包含着三个最主要的界面---收缩形式的界面(status_bar)、展开形式的界面(status_bar_expanded)和安全锁界面(Keyguard_bouncer),最后通过 Window addView 将其显示,其主要视图结构如下图所示:

1.1 锁屏状态栏

锁屏状态栏是只有用户设置了锁屏方式为滑动或其他安全锁时才会显示,锁屏方式设置为无时不会显示,其显示是伴随着锁屏界面的,也就是只有按下 power 键或者自动息屏后才会显示。其显示逻辑是在 NotificationPanelView 来控制的。锁屏状态栏的显示效果一般如下图所示:

主要布局文件是:

Frameworks\base\packages\SystemUI\res\layout\keyguard_status_bar.xml

其本身是个 KeyguardStatusBarView,布局代码如下图所示:

1.2 状态栏

状态栏是在解锁状态下才会显示的,其显示效果大致如下图:

主要布局是 frameworks\base\packages\SystemUI\res\layout\status_bar.xml,其本身是个 PhoneStatusBarView,布局代码如下:

相关推荐
rocpp14 小时前
Android 相册选择与拍照接入实践:MediaStore 分页、权限适配与 FileProvider
android
Flynt15 小时前
升级Flutter 3.44,我踩了HCPP和AGP 9的坑
android·flutter·dart
白色牙膏16 小时前
Cocos Creator 2.4.x 接入 AdMob 插件的迁移实践
android
我命由我1234518 小时前
C++ - 面向对象 - 常成员函数
android·java·linux·c语言·开发语言·c++·算法
tryqaaa_18 小时前
学习日志(四)【php反序列化魔术方法以及pop构造配实战】
android
Java小学生丶20 小时前
记录一下我的 Gradle 开发环境配置过程
android·java·gradle·maven·安卓
问心无愧051321 小时前
ctf show web 入门256
android·前端·笔记
霸道流氓气质21 小时前
MySQL 索引设计实战指南
android·数据库·mysql
R语言爱好者21 小时前
叠氮酸介绍
android
方白羽21 小时前
Android WebView 中实现第三方 QQ 登录的架构与流程详解
android·app