优化省电模式UI
authorCaisking <Casiking@zhihuishixun.com>
Mon, 28 Jul 2025 12:19:53 +0000 (20:19 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Mon, 28 Jul 2025 12:19:53 +0000 (20:19 +0800)
code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/include/SaveBatView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/include/SaveEleView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/src/SaveBatView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/saveele/src/SaveEleView.cpp

index 149604c..22d3a70 100644 (file)
@@ -113,6 +113,8 @@ namespace OHOS
 \r
         SaveBatView(SaveBatView &&) = delete;\r
         SaveBatView &operator=(SaveBatView &&) = delete;\r
+\r
+        UIViewGroup *group_ = nullptr;\r
         /*省电界面*/\r
         UILabel *timelabel = nullptr;            // 时间\r
         UILabel *datelabel = nullptr;            // 日期标签\r
index 6a1469c..1a86f7f 100644 (file)
@@ -43,7 +43,6 @@ namespace OHOS
         UIButton *buttonno = nullptr;\r
         UIImageView *iamgeicon = nullptr;\r
         UIScrollView *scrollview_ = nullptr;\r
-        UIScrollView *SaveEleView_ = nullptr;\r
         \r
     };\r
 } // namespace OHOS\r
index f4b23c3..63f34ba 100644 (file)
@@ -10,9 +10,7 @@
 #include <iostream>\r
 #include <chrono>\r
 #include <thread>\r
-\r
 #include "battery_hal.h"\r
-\r
 #include "string"\r
 #include "custom_utils.h"\r
 #include "UiConfig.h"\r
@@ -336,6 +334,8 @@ namespace OHOS
         /* 关闭省电模式 */  \r
         uapi_exit_power_saving_mode();\r
 \r
+        // UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(group_);\r
+        // UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);\r
 \r
         // 释放所有动态分配的成员变量  \r
         if (timelabel) {  \r
@@ -401,7 +401,10 @@ namespace OHOS
             delete restart_;  \r
             restart_ = nullptr;  \r
         }  \r
-     \r
+        if (group_) {  \r
+            delete group_;  \r
+            group_ = nullptr;  \r
+        }  \r
         if (label_) {  \r
             delete label_;  \r
             label_ = nullptr;  \r
@@ -463,8 +466,6 @@ namespace OHOS
         float voltage = 0.0F;\r
         uint8_t value = battery_get_voltage(&voltage);\r
 \r
-\r
-        \r
         // 更新界面组件\r
         timelabel->SetText(stringtime.c_str());\r
         datelabel->SetText(dateStr.c_str());\r
@@ -512,9 +513,9 @@ namespace OHOS
         batterylabel->SetTextColor(Color::White());\r
         batteryprogress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffc300);\r
 \r
-        AddViewToRootContainer(batteryiamge);\r
-        AddViewToRootContainer(batterylabel);\r
-        AddViewToRootContainer(batteryprogress);\r
+        group_->Add(batteryiamge);\r
+        group_->Add(batterylabel);\r
+        group_->Add(batteryprogress);\r
     }\r
     void SaveBatView::InitTimeView()\r
     {\r
@@ -535,7 +536,7 @@ namespace OHOS
         timelabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         timelabel->SetRollSpeed(0);\r
         timelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 100);\r
-        AddViewToRootContainer(timelabel);\r
+        group_->Add(timelabel);\r
 \r
         /*日期*/\r
         datelabel = new UILabel();\r
@@ -555,7 +556,7 @@ namespace OHOS
         datelabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         datelabel->SetRollSpeed(0);\r
         datelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);\r
-        AddViewToRootContainer(datelabel);\r
+        group_->Add(datelabel);\r
     }\r
     void SaveBatView::InitButtonView()\r
     {\r
@@ -576,7 +577,7 @@ namespace OHOS
         button_exit->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
 \r
         button_exit->SetOnTouchListener(presenter_);\r
-        AddViewToRootContainer(button_exit);\r
+        group_->Add(button_exit);\r
     }\r
     void SaveBatView::InitShowBackView()\r
     {\r
@@ -607,7 +608,7 @@ namespace OHOS
         curren_label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         curren_label->SetRollSpeed(0);\r
         curren_label->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 40);\r
-        AddViewToRootContainer(curren_label);\r
+        group_->Add(curren_label);\r
         curren_label->SetVisible(false);\r
 #if ANIMATION_TEST\r
         // 圆形进度条\r
@@ -631,7 +632,7 @@ namespace OHOS
         backprogress->SetRadius(90);\r
         backprogress->SetEndAngle(359);\r
         backprogress->SetValue(0);\r
-        AddViewToRootContainer(backprogress);\r
+        group_->Add(backprogress);\r
         backprogress->SetVisible(false);\r
 \r
         // 手表image\r
@@ -645,7 +646,7 @@ namespace OHOS
         wathchiamge->Resize(100, 100);\r
         wathchiamge->SetViewId("image1");\r
         wathchiamge->SetSrc(SAVE_WATHCH);\r
-        AddViewToRootContainer(wathchiamge);\r
+        group_->Add(wathchiamge);\r
         wathchiamge->SetVisible(false);\r
 \r
         // 倒计时\r
@@ -664,7 +665,7 @@ namespace OHOS
         countlabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         countlabel->SetRollSpeed(0);\r
         countlabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 40);\r
-        AddViewToRootContainer(countlabel);\r
+        group_->Add(countlabel);\r
         countlabel->SetVisible(false);\r
 #else\r
         if (canvas_ == nullptr)\r
@@ -673,7 +674,7 @@ namespace OHOS
         }\r
         canvas_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
         canvas_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
-        AddViewToRootContainer(canvas_);\r
+        group_->Add(canvas_);\r
         canvas_->SetVisible(false);\r
 \r
         if (label_ == nullptr)\r
@@ -682,7 +683,7 @@ namespace OHOS
         }\r
         label_->SetPosition(LABEL_X, LABEL_Y, 180, 120);\r
         label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        AddViewToRootContainer(label_);\r
+        group_->Add(label_);\r
         label_->SetVisible(false);\r
 \r
         PaintExt paint;\r
@@ -832,23 +833,25 @@ namespace OHOS
 \r
     void SaveBatView::OnStart()\r
     {\r
-       \r
+        group_ = new UIViewGroup();\r
+        if (group_ == nullptr)\r
+        {\r
+            return;\r
+        }\r
 \r
-        GetRootContainer()->SetPosition(0, 0);\r
-        GetRootContainer()->SetWidth(Screen::GetInstance().GetWidth());\r
-        GetRootContainer()->SetHeight(Screen::GetInstance().GetHeight());\r
-        GetRootContainer()->SetTouchable(true);\r
-        GetRootContainer()->SetDraggable(true);\r
+        group_->SetPosition(0, 0);\r
+        group_->SetWidth(Screen::GetInstance().GetWidth());\r
+        group_->SetHeight(Screen::GetInstance().GetHeight());\r
+        group_->SetTouchable(true);\r
+        group_->SetDraggable(true);\r
 \r
         InitBatteryView();\r
         InitTimeView();\r
         InitButtonView();\r
         InitShowBackView();\r
 \r
-        Draw();\r
-\r
+        AddViewToRootContainer(group_);\r
         RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
     }\r
 \r
-    \r
 }
\ No newline at end of file
index 6556815..d1560ea 100644 (file)
@@ -16,7 +16,6 @@
 #include "ui_resource_image.h"\r
 #include "ui_resource_string.h"\r
 #include "uicomponents/UIComponents.h"\r
-#include "components/ui_scroll_view.h"\r
 \r
 namespace OHOS {\r
 \r
@@ -31,49 +30,43 @@ SaveEleView::SaveEleView() { g_pSaveEleView = this; }
 \r
 SaveEleView::~SaveEleView() {\r
 \r
-\r
   if (scrollview_ != nullptr) {\r
     scrollview_->RemoveAll();\r
 \r
-  if (labeltitle) {\r
-    delete labeltitle;\r
-    labeltitle = nullptr;\r
-  }\r
-  if (labelnote) {\r
-    delete labelnote;\r
-    labelnote = nullptr;\r
-  }\r
-  if (labelkown) {\r
-    delete labelkown;\r
-    labelkown = nullptr;\r
-  }\r
-  if (iamgeicon) {\r
-    delete iamgeicon;\r
-    iamgeicon = nullptr;\r
-  }\r
-  if (buttonno) {\r
-    delete buttonno;\r
-    buttonno = nullptr;\r
-  }\r
-  if (buttonok) {\r
-    delete buttonok;\r
-    buttonok = nullptr;\r
-  }\r
-  delete scrollview_;\r
+    if (labeltitle) {\r
+      delete labeltitle;\r
+      labeltitle = nullptr;\r
+    }\r
+    if (labelnote) {\r
+      delete labelnote;\r
+      labelnote = nullptr;\r
+    }\r
+    if (labelkown) {\r
+      delete labelkown;\r
+      labelkown = nullptr;\r
+    }\r
+    if (iamgeicon) {\r
+      delete iamgeicon;\r
+      iamgeicon = nullptr;\r
+    }\r
+    if (buttonno) {\r
+      delete buttonno;\r
+      buttonno = nullptr;\r
+    }\r
+    if (buttonok) {\r
+      delete buttonok;\r
+      buttonok = nullptr;\r
+    }\r
+    delete scrollview_;\r
     scrollview_ = nullptr;\r
   }\r
-  \r
+\r
   g_pSaveEleView = nullptr;\r
 }\r
 \r
 SaveEleView *SaveEleView::GetInstance() { return g_pSaveEleView; }\r
 \r
 void SaveEleView::InitView() {\r
-  \r
-    SaveEleView_ = new UIScrollView();\r
-    SaveEleView_->SetPosition(0, 0, 466, 466);\r
-    SaveEleView_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
-  \r
 \r
   /*初始化label*/\r
   InitRollLabel(labeltitle, 83, 50, 300, 35, "labletitle", STR_POWER_SAVE_MODE,\r
@@ -103,33 +96,30 @@ void SaveEleView::InitView() {
   buttonok->SetImageSrc(butokImgPath, butokImgPath);\r
   buttonok->SetOnClickListener(presenter_);\r
 \r
-  SaveEleView_->Add(labeltitle);\r
-  SaveEleView_->Add(labelnote);\r
-  SaveEleView_->Add(labelkown);\r
-  SaveEleView_->Add(iamgeicon);\r
-  SaveEleView_->Add(buttonno);\r
-  SaveEleView_->Add(buttonok);\r
-  scrollview_->Add(SaveEleView_);\r
-  \r
+  scrollview_->Add(labeltitle);\r
+  scrollview_->Add(labelnote);\r
+  scrollview_->Add(labelkown);\r
+  scrollview_->Add(iamgeicon);\r
+  scrollview_->Add(buttonno);\r
+  scrollview_->Add(buttonok);\r
 }\r
 \r
 void SaveEleView::OnStart() {\r
 \r
   View<SaveElePresenter>::OnStart();\r
-  \r
+\r
   scrollview_ = new UIScrollView();\r
   if (scrollview_ == nullptr) {\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollview_ new fail");\r
     return;\r
   }\r
-  // scrollview_->SetScrollBlankSize(35);\r
-  // scrollview_->SetReboundSize(50);\r
+  scrollview_->SetScrollBlankSize(35);\r
+  scrollview_->SetReboundSize(50);\r
   scrollview_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),\r
-                          Screen::GetInstance().GetHeight());\r
+                           Screen::GetInstance().GetHeight());\r
 \r
-                          \r
-                          scrollview_->SetHorizontalScrollState(false); // 设置水平滚动失效\r
-                          scrollview_->SetDirection(1);\r
+  scrollview_->SetHorizontalScrollState(false); // 设置水平滚动失效\r
+  scrollview_->SetDirection(1);\r
 \r
   scrollview_->SetOnDragListener(presenter_);\r
   scrollview_->SetOnRotateListener(presenter_);\r
@@ -140,12 +130,9 @@ void SaveEleView::OnStart() {
   scrollview_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);\r
   scrollview_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
 \r
-\r
   AddViewToRootContainer(scrollview_);\r
   InitView();\r
   RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
-  \r
 }\r
 \r
-\r
 } // namespace OHOS\r