Android 11.0 锁屏页面时钟显示样式
一.需求分析
Android 11.0系统默认的锁屏时钟 年月日 显示的样式不符合需求,现在需要定制化.下图是系统默认的时间样式.
目标是改成这样:
二.核心代码路径
frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
framewors/base/core/res/res/values/donottranslate.xml
frameworks/base/packages/SystemUI/res/values/donottranslate.xml
三.核心代码分析
(1)frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java 中,设置时间样式.
public boolean onCreateSliceProvider() {mContextAvailableCallback.onContextAvailable(getContext());inject();synchronized (KeyguardSliceProvider.sInstanceLock) {KeyguardSliceProvider oldInstance = KeyguardSliceProvider.sInstance;if (oldInstance != null) {oldInstance.onDestroy();}//时间样式mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern);mPendingIntent = PendingIntent.getActivity(getContext(), 0,new Intent(getContext(), KeyguardSliceProvider.class), 0);mMediaManager.addCallback(this);mStatusBarStateController.addCallback(this);mNextAlarmController.addCallback(this);mZenModeController.addCallback(this);KeyguardSliceProvider.sInstance = this;registerClockUpdate();updateClockLocked();}return true;}
(2)查看 R.string.system_ui_aod_date_pattern
frameworks/base/packages/SystemUI/res/values/donottranslate.xml
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><!-- Date format for display: should match the lockscreen in /policy. --><string name="system_ui_date_pattern" translatable="false">@*android:string/system_ui_date_pattern</string><!-- Date format for the always on display. --><item type="string" name="system_ui_aod_date_pattern" translatable="false">EEEMMMd</item>
</resources>
(3)查看值为 @*android:string/system_ui_date_pattern 定义的地方
framewors/base/core/res/res/values/donottranslate.xml
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><!-- @hide DO NOT TRANSLATE. Workaround for resource race condition in lockscreen. --><bool name="lockscreen_isPortrait">true</bool><!-- @hide DO NOT TRANSLATE. Control aspect ratio of lock pattern --><string name="lock_pattern_view_aspect">square</string><!-- @hide DO NOT TRANSLATE. ICU pattern for "Mon, 14 January" --><string name="icu_abbrev_wday_month_day_no_year">EEEMMMMd</string><!-- @hide DO NOT TRANSLATE. date formatting pattern for system ui.--><string name="system_ui_date_pattern">@string/icu_abbrev_wday_month_day_no_year</string><!-- @hide DO NOT TRANSLATE Spans within this text are applied to style composing regionswithin an EditText widget. The text content is ignored and not used. --><string name="candidates_style" translatable="false"><u>candidates</u></string>
</resources>
可以看到,
<string name="system_ui_date_pattern" translatable="false">EEEMMMMd</string>
(4) 所以,我们可以在这里修改,指定需要的格式为: a eeee MMMd
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><!-- Date format for display: should match the lockscreen in /policy. --><string name="system_ui_date_pattern" translatable="false">@*android:string/system_ui_date_pattern</string><!-- Date format for the always on display. -->
- <item type="string" name="system_ui_aod_date_pattern" translatable="false">EEEMMMd</item>+ <item type="string" name="system_ui_aod_date_pattern" translatable="false">a eeee MMMd</item></resources>
其中:
eeeMMMMd:
"d" : 年月日星期几中的“日”;
“eee” : 年月日星期几中的“星期几”;
“MMMM” : 年月日星期几中的“月”;
The end!
Android 11.0 锁屏页面时钟显示样式相关推荐
- Android 12.0 锁屏页面禁止下拉状态栏
目录 1.概述 2.锁屏页面禁止下拉状态栏的核心类 3.锁屏页面禁止下拉状态栏的核心功能分析和实现
- Android 12.0 锁屏页面滑动解锁不灵敏的功能修复
目录 1.概述 2.锁屏页面滑动解锁不灵敏的功能修复的核心类
- Android 11.0 锁屏界面滑动解锁不灵的解决方案
目录 1.概述 2.锁屏界面滑动解锁不灵的解决方案的核心类
- android解锁界面分析,Android 7.0 锁屏解锁之向上滑动显示解锁界面分析
Android 7.0 锁屏解锁之向上滑动显示解锁界面分析 by jing.chen 锁屏的解锁操作是在锁屏界面向上滑动实现的,通过向上滑动调出解锁界面(如图案.PIN.密码解锁界面),在解锁界面输入 ...
- Android 10.0锁屏界面默认不显示Notification通知
在系统开机以后,默认在锁屏界面如果有通知会显示的,但是这样客户觉得非常不方便,要求去掉显示的所有通知,为了满足客户需求 所以就要实现这个功能 在StatusBarNotificationPresent ...
- Android 11.0 12.0Recent列表不显示某个app
在11.0 12.0的产品在点击导航栏最近任务列表时,如果做到不显示某个app 呢 一种做法是在app中直接处理 一种做法是在framework中处理 接下来看这两种处理方法 1, app中处理 为该 ...
- android 6.0锁屏,安卓 Android 6.0~9.0 手机/平板清除锁屏密码教程 —— 让您瞬间变大神!...
摘要 生活中总是有不少粗枝大叶的马大哈,一不小心操作失误或睡的太久就把锁屏密码给忘了!焦急.懊恼.彷徨--都已经于事无补!还是试试本教程吧!本教程只对安卓 Android 6.0~9.0 并且已经 R ...
- android 8.0 3D锁屏,Android 8.0 锁屏滑动无法解锁
问题:有一个电阻屏的手机,屏幕小,并且滑动不流畅导致无法解锁 解锁有两个界面 1. Notification Keyguard 显示通知锁屏 2.bouncer输入密码锁屏 一般情况下解锁根据滑动Y距 ...
- Android 小知识记录-----息屏后亮屏并显示Activity在锁屏页面之上
息屏后亮屏并显示Activity在锁屏页面之上 1. 加权限 <uses-permission android:name="android.permission.WAKE_LOCK&q ...
最新文章
- R语言_基本数据管理
- 【体验】ESP32-CAM可能是最便宜的“监控”方案,ESP32-CAM程序下载调试
- Java使用PDFBox开发包实现对PDF文档内容编辑与保存
- java MD5加密
- Swift傻傻分不清楚系列(十一)类和结构体
- 列表推导(list comprehension)--Python
- python3 协程 写法_理解Python的协程(Coroutine)
- Nagios飞信linux系统免费短信报警配置
- 家境一般但被中外合资大学录取了,现在家庭气氛紧张
- 高德地图联手中国气象局,积水地图 AI 版实时预测道路积水
- C语言:从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩
- 快速上手友盟推送前后端
- Linux Sed简介
- java 合并两个有序数组
- MindManager 2020注册机下载
- delphi 剪切板变量_Delphi操作剪贴板
- C++:什么是RAII? | 智能指针的初步讲解 | 智能指针是为了避免什么问题?| 被遗弃的auto_ptr
- UVa 10696 - f91
- 《惢客创业日记》2021.01.22(周五)英雄心,狗熊命?
- oracle数据库rac切换,RAC切换归档模式