#191KUMU表盘,时间显示不居中;#461表盘,消息红点提示下面有遮挡,未显示全
authorCaisking <3449750381@qq.com>
Mon, 2 Sep 2024 10:48:05 +0000 (18:48 +0800)
committerCaisking <3449750381@qq.com>
Mon, 2 Sep 2024 10:48:05 +0000 (18:48 +0800)
code/sdk/application/wearable/fd230app/nativeui/clock/include/MainClockView.h
code/sdk/application/wearable/fd230app/nativeui/clock/src/MainClockView.cpp

index 7772895..7c83d81 100644 (file)
@@ -64,8 +64,8 @@ namespace OHOS
     /*表盘时间配置*/
     enum TimeDisplayPosition
     {
-        TIME_DISPLAY_ABOVE = 0,                   // 显示在表盘上方
-        TIME_DISPLAY_BELOW,                       // 显示在表盘下方
+        TIME_DISPLAY_BELOW = 0,                   // 显示在表盘下方
+        TIME_DISPLAY_ABOVE,                       // 显示在表盘上方
         TIME_DISPLAY_DEFAULT = TIME_DISPLAY_BELOW // 默认:下方
     };
 
@@ -93,7 +93,7 @@ namespace OHOS
 
         /*配置自定义表盘*/
         void SetCustomId(int Id);
-        
+
         /*配置函数*/
         bool InitBackground(const char *filename);
         bool InitTimeView(TimeDisplayPosition type);   // 时间
@@ -112,15 +112,18 @@ namespace OHOS
 
         /*表盘背景*/
         UIImageView *curFace{nullptr};
+        
         /*时间相关*/
         UILabel *timerlabel{nullptr};
         UILabel *weekLabel{nullptr};
         UILabel *datelabel{nullptr};
+
         /*电量相关*/
         UIImageView *batteryiamge{nullptr};
         UIBoxProgress *batteryprogress{nullptr};
         UILabel *batterylabel{nullptr};
         UIImageView *batteryicon{nullptr};
+
         /*数据相关*/
         UILabel *stepLabel{nullptr};
         UILabel *heartlabel{nullptr};
index 5c9f58f..698e7ff 100644 (file)
@@ -38,8 +38,8 @@ std::string Enweekdays[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
 std::string Cnweekdays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
 
 static constexpr const char *CHAGE_BATTERY = "/user/res/Battery/Charge_Icon.bin";
-static constexpr const char *WHITE_BATTERY = "/user/res/Battery/Battery-E.bin";
-static constexpr const char *BLACK_BATTERY = "/user/res/Battery/Battery-E.bin";
+static constexpr const char *WHITE_BATTERY = "/user/res/Battery/Battery_White.bin";
+static constexpr const char *BLACK_BATTERY = "/user/res/Battery/Battery_Black.bin";
 
 // 定义一些常量
 constexpr int HOURS_IN_DAY = 24;
@@ -100,12 +100,15 @@ namespace OHOS
     MainClockView::~MainClockView()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::~MainClockView");
+
         delete curFace; // 背景
         curFace = nullptr;
         delete timerlabel; // 时间
         timerlabel = nullptr;
         delete weekLabel; // 星期
         weekLabel = nullptr;
+        delete datelabel; // 日期
+        datelabel = nullptr;
         delete batteryiamge; // 电量框
         batteryiamge = nullptr;
         delete batteryprogress; // 电量进度条
@@ -134,16 +137,21 @@ namespace OHOS
             return;
 
         DialLayout dialconfig;
-        SetDialModel::GetInstance().loadDialConfig(Id, dialconfig);
-
-        // 设置背景
-        dialFile = SetDialModel::GetInstance().GetSaveDir(Id) + "/" + "main_bg.bin";
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dialFile is %s", dialFile.c_str());
+        if (SetDialModel::GetInstance().loadDialConfig(Id, dialconfig))
+        {
+            // 设置背景
+            dialFile = SetDialModel::GetInstance().GetSaveDir(Id) + "/" + "main_bg.bin";
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dialFile is %s", dialFile.c_str());
 
-        // 设置表盘配置
-        timePosition = static_cast<TimeDisplayPosition>(dialconfig.timeDisplay);
-        batterySetting = static_cast<BatteryDisplayType>(dialconfig.batteryDisplay);
-        colorType = static_cast<ColorTypeSet>(dialconfig.colorTypeSet);
+            // 设置表盘配置
+            timePosition = static_cast<TimeDisplayPosition>(dialconfig.timeDisplay);
+            batterySetting = static_cast<BatteryDisplayType>(dialconfig.batteryDisplay);
+            colorType = static_cast<ColorTypeSet>(dialconfig.colorTypeSet);
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "custom_id [%d] file is error! ", Id);
+        }
     }
 
     /*设置表盘背景*/
@@ -211,7 +219,7 @@ namespace OHOS
                 return false;
             }
             label->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
-            label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+            label->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); // 居中
             label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             label->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);
             return true;
@@ -219,7 +227,6 @@ namespace OHOS
 
         // 创建时间、星期、日期标签
         if (!createLabel(timerlabel, "timerlabel") ||
-            !createLabel(weekLabel, "weekLabel") ||
             !createLabel(datelabel, "datelabel"))
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Label creation failed, exiting InitTimeView");
@@ -230,29 +237,29 @@ namespace OHOS
         switch (type)
         {
         case TIME_DISPLAY_ABOVE:
-            timerlabel->SetPosition(104, 98, 200, 60);
-            timerlabel->SetFont(GILROY_BOLD_FONT, 100);
-            datelabel->SetPosition(133, 206, 200, 60);
+            timerlabel->SetPosition(0, 65, 466, 150);
+            timerlabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 100);
+            datelabel->SetPosition(83, 186, 300, 60);
             datelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
-            weekLabel->SetPosition(242, 206, 200, 60);
-            weekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
+            // weekLabel->SetPosition(246, 196, 200, 60);
+            // weekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
             break;
 
         case TIME_DISPLAY_BELOW:
         default: // 默认情况下显示在下方
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "type is unknown, defaulting to TIMEVIEW_DOWN");
-            timerlabel->SetPosition(147, 301, 200, 60);
-            timerlabel->SetFont(GILROY_BOLD_FONT, 70);
-            datelabel->SetPosition(137, 387, 200, 60);
+            timerlabel->SetPosition(83, 300, 300, 100);
+            timerlabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 65);
+            datelabel->SetPosition(137, 380, 200, 60);
             datelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
-            weekLabel->SetPosition(252, 387, 200, 60);
-            weekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
+            // weekLabel->SetPosition(252, 390, 200, 60);
+            // weekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
             break;
         }
 
         Add(timerlabel);
         Add(datelabel);
-        Add(weekLabel);
+        // Add(weekLabel);
         return true;
     }
     /*
@@ -268,7 +275,7 @@ namespace OHOS
     */
     bool MainClockView::InitColor(ColorTypeSet type)
     {
-        if (!timerlabel || !datelabel || !weekLabel)
+        if (!timerlabel || !datelabel)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label is null");
             return false;
@@ -281,33 +288,33 @@ namespace OHOS
         case COLOR_BLACK:
             timerlabel->SetTextColor(Color::Black());
             datelabel->SetTextColor(Color::Black());
-            weekLabel->SetTextColor(Color::Black());
+            // weekLabel->SetTextColor(Color::Black());
             break;
         case COLOR_GRAY:
             timerlabel->SetTextColor(Color::Gray());
             datelabel->SetTextColor(Color::Gray());
-            weekLabel->SetTextColor(Color::Gray());
+            // weekLabel->SetTextColor(Color::Gray());
             break;
         case COLOR_GREEN:
             timerlabel->SetTextColor(Color::Green());
             datelabel->SetTextColor(Color::Green());
-            weekLabel->SetTextColor(Color::Green());
+            // weekLabel->SetTextColor(Color::Green());
             break;
         case COLOR_ORANGE:
             timerlabel->SetTextColor(Color::Orange());
             datelabel->SetTextColor(Color::Orange());
-            weekLabel->SetTextColor(Color::Orange());
+            // weekLabel->SetTextColor(Color::Orange());
             break;
         case COLOR_BLUE:
             timerlabel->SetTextColor(Color::Blue());
             datelabel->SetTextColor(Color::Blue());
-            weekLabel->SetTextColor(Color::Blue());
+            // weekLabel->SetTextColor(Color::Blue());
             break;
         case COLOR_WHITE:
         default: // 默认情况下使用白色
             timerlabel->SetTextColor(Color::White());
             datelabel->SetTextColor(Color::White());
-            weekLabel->SetTextColor(Color::White());
+            // weekLabel->SetTextColor(Color::White());
             break;
         }
         return true;
@@ -362,12 +369,12 @@ namespace OHOS
         }
 
         // 设置位置
-        batteryicon->SetPosition(185, 52, 100, 100);
+        batteryicon->SetPosition(186, 52, 100, 100);
         batteryiamge->SetPosition(173, 52, 100, 100);
-        batteryprogress->SetPosition(179, 59, 30, 18);
+        batteryprogress->SetPosition(180, 58, 30, 18);
         batteryprogress->SetViewId("progress");
         batteryprogress->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-        batterylabel->SetPosition(228, 54, 200, 60);
+        batterylabel->SetPosition(228, 52, 200, 60);
         batterylabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);
 
         // 设置图标和颜色
@@ -495,8 +502,10 @@ namespace OHOS
         std::string dateStr = std::to_string(local_time.tm_mon + 1) + "月" +
                               std::to_string(local_time.tm_mday) + "日";
 
-        if (weekLabel != nullptr)
-            weekLabel->SetText(weekStr.c_str());
+        dateStr = dateStr + " " + weekStr;
+
+        // if (weekLabel != nullptr)
+        //     weekLabel->SetText(weekStr.c_str());
         if (datelabel != nullptr)
             datelabel->SetText(dateStr.c_str());