Android 11.0 锁屏页面时钟显示样式 | 您所在的位置:网站首页 › 苹果手机锁屏时钟样式设置 › 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 @*android:string/system_ui_date_pattern EEEMMMd(3)查看值为 @*android:string/system_ui_date_pattern 定义的地方 framewors/base/core/res/res/values/donottranslate.xml true square EEEMMMMd @string/icu_abbrev_wday_month_day_no_year candidates可以看到, EEEMMMMd (4) 所以,我们可以在这里修改,指定需要的格式为: a eeee MMMd @*android:string/system_ui_date_pattern - EEEMMMd + a eeee MMMd其中: eeeMMMMd: "d" : 年月日星期几中的“日”; “eee” : 年月日星期几中的“星期几”; “MMMM” : 年月日星期几中的“月”; The end! |
CopyRight 2018-2019 实验室设备网 版权所有 |