一.需求分析

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 锁屏页面时钟显示样式相关推荐

  1. Android 12.0 锁屏页面禁止下拉状态栏

    目录 1.概述 2.锁屏页面禁止下拉状态栏的核心类 3.锁屏页面禁止下拉状态栏的核心功能分析和实现

  2. Android 12.0 锁屏页面滑动解锁不灵敏的功能修复

    目录 1.概述 2.锁屏页面滑动解锁不灵敏的功能修复的核心类

  3. Android 11.0 锁屏界面滑动解锁不灵的解决方案

    目录 1.概述 2.锁屏界面滑动解锁不灵的解决方案的核心类

  4. android解锁界面分析,Android 7.0 锁屏解锁之向上滑动显示解锁界面分析

    Android 7.0 锁屏解锁之向上滑动显示解锁界面分析 by jing.chen 锁屏的解锁操作是在锁屏界面向上滑动实现的,通过向上滑动调出解锁界面(如图案.PIN.密码解锁界面),在解锁界面输入 ...

  5. Android 10.0锁屏界面默认不显示Notification通知

    在系统开机以后,默认在锁屏界面如果有通知会显示的,但是这样客户觉得非常不方便,要求去掉显示的所有通知,为了满足客户需求 所以就要实现这个功能 在StatusBarNotificationPresent ...

  6. Android 11.0 12.0Recent列表不显示某个app

    在11.0 12.0的产品在点击导航栏最近任务列表时,如果做到不显示某个app 呢 一种做法是在app中直接处理 一种做法是在framework中处理 接下来看这两种处理方法 1, app中处理 为该 ...

  7. android 6.0锁屏,安卓 Android 6.0~9.0 手机/平板清除锁屏密码教程 —— 让您瞬间变大神!...

    摘要 生活中总是有不少粗枝大叶的马大哈,一不小心操作失误或睡的太久就把锁屏密码给忘了!焦急.懊恼.彷徨--都已经于事无补!还是试试本教程吧!本教程只对安卓 Android 6.0~9.0 并且已经 R ...

  8. android 8.0 3D锁屏,Android 8.0 锁屏滑动无法解锁

    问题:有一个电阻屏的手机,屏幕小,并且滑动不流畅导致无法解锁 解锁有两个界面 1. Notification Keyguard 显示通知锁屏 2.bouncer输入密码锁屏 一般情况下解锁根据滑动Y距 ...

  9. Android 小知识记录-----息屏后亮屏并显示Activity在锁屏页面之上

    息屏后亮屏并显示Activity在锁屏页面之上 1. 加权限 <uses-permission android:name="android.permission.WAKE_LOCK&q ...

最新文章

  1. R语言_基本数据管理
  2. 【体验】ESP32-CAM可能是最便宜的“监控”方案,ESP32-CAM程序下载调试
  3. Java使用PDFBox开发包实现对PDF文档内容编辑与保存
  4. java MD5加密
  5. Swift傻傻分不清楚系列(十一)类和结构体
  6. 列表推导(list comprehension)--Python
  7. python3 协程 写法_理解Python的协程(Coroutine)
  8. Nagios飞信linux系统免费短信报警配置
  9. 家境一般但被中外合资大学录取了,现在家庭气氛紧张
  10. 高德地图联手中国气象局,积水地图 AI 版实时预测道路积水
  11. C语言:从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩
  12. 快速上手友盟推送前后端
  13. Linux Sed简介
  14. java 合并两个有序数组
  15. MindManager 2020注册机下载
  16. delphi 剪切板变量_Delphi操作剪贴板
  17. C++:什么是RAII? | 智能指针的初步讲解 | 智能指针是为了避免什么问题?| 被遗弃的auto_ptr
  18. UVa 10696 - f91
  19. 《惢客创业日记》2021.01.22(周五)英雄心,狗熊命?
  20. oracle数据库rac切换,RAC切换归档模式

热门文章

  1. MDICT的100G的辞典资源_我是亲民_新浪博客
  2. 数据库题目 - 第二高的薪水
  3. vueadmin-template应用1:安装入门
  4. Redis修改端口号后无法连接的问题
  5. 那些LTE的上行技术
  6. xpath语法java_xpath语法及其使用教程
  7. 职场沟通利器(1):顶级咨询公司PPT模板
  8. 混合模式(Hybride mode)
  9. 基于openCV库的张正友标定法的一些实验结果
  10. steam平台,分手厨房2如何实现键盘+手柄,双人游戏