您的位置:首页 > 移动开发 > Android开发

Android 6.0 平台(Settings下去掉了日期格式选项),如何更改系统日期默认格式及锁屏界面和下拉状态栏日期格式修改

2016-12-14 00:14 1761 查看

 Android 6.0 平台,如何更改系统日期默认格式及锁屏界面和下拉状态栏日期格式修改

展讯Android_6.0平台,Settings模块 Date & Time 选项下,去掉了日期默认格式的选项即:MM-dd-yyyy及dd-MM-yyyy和yyyy-MM-dd三种格式;现客户需求是:"dd-MM-yyyy"。

好了,各种曲折就不说了,干货来。

个人认为:日期默认格式主要体现在:(1)开机向导中Date & Time 日期格式;(2)锁屏界面及下拉状态栏,日期格式显示。

一、开机向导中Date & Time 项,日期格式要求:"dd-MM-yyyy"

(1).修改点:External/icu/icu4c/source/data/locales/ 目录下 en.txt 文件

此项修改是针对在默认英语语言环境下,开机向导开机Date & Time的选项。

修改点:

1). 修改资源文件en.txt。

gregorian{

     ..........

    DateTimePatterns{

                ...............

                "EEEE, MMMM d, y",

                "MMMM d, y",

                "MMM d, y",

             -   "M/d/yy",

            +  "d/M/yy",

                "{1}, {0}",

...............
如需要修改其他语言环境下的格式(如中文)请修改同目录下的zh.txt文件中相同位置(允许我复制一段代码)。

2).
修改en.txt文件后,编译出 xxx.dat文件

如何编译,方法如下:

a). 合入external/icu里的修改后进入到 external/icu/icu4c/source目录执行makeData.sh脚本。

【即在external/icu/icu4c/source下执行  sh makeData.sh  命令】(此命令会修改external/icu/icu4c/source/stubdata/icudt53l.dat文件)

b). 执行完命令后  快速验证的方法为把external/icu/icu4c/source/stubdata/下icudt53l.dat的文件push到手机的system/usr/icu目录下重启手机即可验证)
【命令:adb push icudt53l.dat system/usr/icu
          
adb reboot】如何push不成功,就直接全编译把,不要纠结,因为有时在服务器上,是没有权限的,adb remount 不会成功,所以不要一

直纠结在这里。

到这里,第一步修改开机向导,日期格式修改已经成功,但是还不够,因为锁屏界面和下拉状态栏仍然是系统默认的格式。

二、锁屏界面和下拉状态栏显示"dd-MM-yyyy"

(1).修改锁屏界面

a. 修改文件点:framework/base/packages/Keyguard/src/com/android/keyguard/keyguardStatusView.java

private static final Class Patterns{

..........

static void update(Context context,boolean hasAlarlm){

//对dateView 进行截取,直接修改为:dateView = "EEEE, d MMMM"(d前面和后面都有一个空格,这样显示会更加美观)

..........

 
if (key.equals(cacheKey)) return; 

            dateView = DateFormat.getBestDateTimePattern(locale, dateViewSkel); 

dateViewdateView = "EEEE, d MMMM";

..........

(2).修改下拉状态栏

b.修改文件点:framework/base/packages/SystemUI/src/com/android/systeui/startubar/policy/DateView.java

..........
 
protected void updateClock() { 

        if (mDateFormat == null) { 

            final Locale l = Locale.getDefault(); 

          -   final String fmt = DateFormat.getBestDateTimePattern(l, mDatePattern);

//截取fmt

          +  String fmt = DateFormat.getBestDateTimePattern(l, mDatePattern); 

          +  fmt = "EEEE, d MMMM"; 

            mDateFormat = new SimpleDateFormat(fmt, l);

.......... 

        } 

好了,到这里应该就基本完成任务了,如何需要在锁屏界面日期年份,可以查阅资料,在资源文件中更改就可以了,具体哪个资源文件,可以百度一下

,会很容易得到答案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息