sprd 11.0修改通知栏时间样式,以及位置居中显示

这篇博客介绍了Android系统UI中关于`status_bar.xml`布局文件的修改,新增了`Clock`组件并调整了其样式。同时,深入解析了`Clock.java`源码,包括时间格式的处理和AM/PM显示的逻辑。通过对字体大小、内边距的调整,优化了状态栏时钟的显示效果。
摘要由CSDN通过智能技术生成
--- a/sprd/frameworks/base/packages/SystemUI/res/layout/status_bar.xml
+++ b/sprd/frameworks/base/packages/SystemUI/res/layout/status_bar.xml
@@ -49,6 +49,15 @@
         android:paddingTop="@dimen/status_bar_padding_top"
         android:orientation="horizontal"
         >
+     <com.android.systemui.statusbar.policy.Clock
+        android:id="@+id/clock"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:textAppearance="@style/TextAppearance.StatusBar.Clock"
+        android:singleLine="true"
+        android:maxEms="50"
+        android:gravity="center_horizontal"
+    />         
         <FrameLayout
             android:layout_height="match_parent"
             android:layout_width="0dp"
@@ -71,17 +80,6 @@
                     android:layout_height="match_parent"
                     android:layout="@layout/operator_name" />
 
-                <com.android.systemui.statusbar.policy.Clock
-                    android:id="@+id/clock"
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:textAppearance="@style/TextAppearance.StatusBar.Clock"
-                    android:singleLine="true"
-                    android:paddingStart="@dimen/status_bar_left_clock_starting_padding"
-                    android:paddingEnd="@dimen/status_bar_left_clock_end_padding"
-                    android:gravity="center_vertical|start"
-                />
-
                 <com.android.systemui.statusbar.AlphaOptimizedFrameLayout

--- a/sprd/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
+++ b/sprd/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
@@ -63,7 +63,8 @@ import java.util.TimeZone;
 /* UNISOC: 1296687 clock add am/pm @{ */
 import com.unisoc.keyguard.KeyguardSupportAmPm;
 /* @} */
-
+import java.util.Date;
+import android.util.Log;
 /**
  * Digital clock for the status bar.
  */
@@ -336,11 +337,8 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C
     public void onDensityOrFontScaleChanged() {
         FontSizeUtils.updateFontSize(this, R.dimen.status_bar_clock_size);
         setPaddingRelative(
-                mContext.getResources().getDimensionPixelSize(
-                        R.dimen.status_bar_clock_starting_padding),
-                0,
-                mContext.getResources().getDimensionPixelSize(
-                        R.dimen.status_bar_clock_end_padding),
+                               800,
+                               0,0,
                 0);
     }
 
@@ -390,7 +388,7 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C
         Context context = getContext();
         boolean is24 = DateFormat.is24HourFormat(context, mCurrentUserId);
         LocaleData d = LocaleData.get(context.getResources().getConfiguration().locale);
-
+               onDensityOrFontScaleChanged();
         final char MAGIC1 = '\uEF00';
         final char MAGIC2 = '\uEF01';
 
@@ -426,8 +424,9 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C
                     while (a > 0 && Character.isWhitespace(format.charAt(a-1))) {
                         a--;
                     }
-                    format = format.substring(0, a) + MAGIC1 + format.substring(a, b)
-                        + "a" + MAGIC2 + format.substring(b + 1);
+                    format = format.substring(0, a)  + format.substring(a, b)
+                        + "a"  + format.substring(b + 1);
+
                 }
             }
             mClockFormat = sdf = new SimpleDateFormat(format);
@@ -435,13 +434,17 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C
         } else {
             sdf = mClockFormat;
         }
+               String str=null;
         String result = sdf.format(mCalendar.getTime());
 
         /* UNISOC: 1296687 clock add am/pm @{ */
         if(KeyguardSupportAmPm.getInstance(mContext).isEnabled()) {
-            mAmPmStyle = AM_PM_STYLE_SMALL;
+            mAmPmStyle = AM_PM_STYLE_NORMAL;
         }
         /* @} */
+               long time=System.currentTimeMillis();
+               Date date=new Date(time);
+               SimpleDateFormat format2=new SimpleDateFormat("yyyy年MM月dd日 EEEE");
 
         if (mAmPmStyle != AM_PM_STYLE_NORMAL) {
             int magic1 = result.indexOf(MAGIC1);
@@ -459,11 +462,23 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C
                     formatted.delete(magic2, magic2 + 1);
                     formatted.delete(magic1, magic1 + 1);
                 }
-                return formatted;
+                str = formatted+"";
+                if(str.contains("上午")){
+                    str=str.substring(2)+" AM";
+                }else if(str.contains("下午")){
+                    str=str.substring(2)+" PM";
+                }              
+                return format2.format(date)+" "+str;
             }
         }
 
-        return result;
+            str = result;
+            if(str.contains("上午")){
+                str=str.substring(2)+" AM";
+            }else if(str.contains("下午")){
+                str=str.substring(2)+" PM";
+            }
+               return format2.format(date)+" "+str;
 
     }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心有纤纤结

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值