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,布局代码如下:

相关推荐
走在路上的菜鸟3 分钟前
Android学Dart学习笔记第四节 基本类型
android·笔记·学习
百锦再24 分钟前
第21章 构建命令行工具
android·java·图像处理·python·计算机视觉·rust·django
skyhh2 小时前
Android Studio 最新版汉化
android·ide·android studio
路人甲ing..2 小时前
Android Studio 快速的制作一个可以在 手机上跑的app
android·java·linux·智能手机·android studio
携欢5 小时前
PortSwigger靶场之Web shell upload via path traversal靶场通关秘籍
android
消失的旧时光-194313 小时前
Android ADB指令大全详解
android·adb
ashcn200115 小时前
opengl 播放视频的android c++ 方案
android·c++ opengl es
abner.Li15 小时前
android 反编译
android
Digitally15 小时前
如何删除 realme 手机上的短信
android
2501_9160088915 小时前
提高 iOS 应用逆向难度的工程实践,多工具联动的全栈安全方案
android·安全·ios·小程序·uni-app·cocoa·iphone