#886手表,快捷训练卡片修改骑行为自由训练
authorCaisking <3449750381@qq.com>
Sat, 5 Oct 2024 11:27:17 +0000 (19:27 +0800)
committerCaisking <3449750381@qq.com>
Sat, 5 Oct 2024 11:27:17 +0000 (19:27 +0800)
code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.h
code/sdk/application/wearable/fd230app/nativeui/traing/Training_UiConfig.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/Training_CardView.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/Training_CardPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/Training_CardView.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/icon_60x60/FreeTraining_60.bin [new file with mode: 0644]
tools/image_converter_tool/test/hert/Training/icon_60x60/FreeTraining_60.png [new file with mode: 0644]

index c1e7fac..073efd4 100644 (file)
@@ -56,7 +56,7 @@ namespace OHOS
 
     // 默认参数的 UILabel 初始化
     void InitLabelDefault(UILabelExt *&label, int x, int y, int width, int height, const char *viewId, const char *text, int fontSize = 30, const char *fontName = DEFAULT_VECTOR_FONT_FILENAME);
-
+    // 滚动
     bool InitRollLabel(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, const char *fontName, int fontSize);
     bool InitLabelExt(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, const char *fontName, int fontSize);
     bool InitButtonExt(UILabelButtonExt *&button, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, int fontSize);
index 181207c..54cb68e 100644 (file)
@@ -38,6 +38,7 @@ namespace OHOS
     static constexpr const char *RIDING_60_IMAGE = ICON60 "/Riding_60.bin";
     static constexpr const char *RUNNING_60_IMAGE = ICON60 "/Running_60.bin";
     static constexpr const char *WALKING_60_IMAGE = ICON60 "/walking_60.bin";
+    static constexpr const char *FREE_60_IMAGE = ICON60 "/FreeTraining_60.bin";
 
     // Icons in the icon_80x80 folder
     static constexpr const char *JUMPROPE_80_IMAGE = ICON80 "/Jumprope_80.bin";
index b77961b..fdd7064 100644 (file)
@@ -92,11 +92,6 @@ namespace OHOS
             NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGNOMAL);
             TraingModel::GetInstance()->SetSportEvent(STR_EXERCISE_OUTDOORWALKING);
         }
-        if (strcmp(view.GetViewId(), BUTTON2) == 0)
-        {
-            NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGNOMAL);
-            TraingModel::GetInstance()->SetSportEvent(STR_EXERCISE_OUTDOORBIKING);
-        }
         if (strcmp(view.GetViewId(), BUTTON3) == 0)
         {
             NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGNOMAL);
@@ -106,7 +101,11 @@ namespace OHOS
         {
             NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGMORE);
         }
-        // 快捷训练都属于健身类
+        if (strcmp(view.GetViewId(), BUTTON2) == 0) {
+          NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGNOMAL);
+          TraingModel::GetInstance()->SetSportEvent(
+              STR_EXERCISE_FREETRAINING); //修改为自由训练
+        }
         TraingModel::GetInstance()->SetSportType(Exercisetype::FITNESS);
         return true;
     }
index 5662544..0b04912 100644 (file)
 #include "traing/include/TraingModel.h"\r
 #include <iostream>\r
 #include <string>\r
-namespace OHOS\r
-{\r
-    // 按钮设置\r
-    static constexpr uint16_t BUTTON_WIDHT = 140;\r
-    static constexpr uint16_t BUTTON_HEIGHT = 140;\r
-    static constexpr uint16_t BUTTON1_X = 86;\r
-    static constexpr uint16_t BUTTON1_Y = 118;\r
-    static constexpr uint16_t BUTTON2_X = 236;\r
-    static constexpr uint16_t BUTTON2_Y = 118;\r
-    static constexpr uint16_t BUTTON3_X = 86;\r
-    static constexpr uint16_t BUTTON3_Y = 268;\r
-    static constexpr uint16_t BUTTONMORE_X = 236;\r
-    static constexpr uint16_t BUTTONMORE_Y = 268;\r
-\r
-    // 标签设置\r
-    static constexpr uint16_t LABEL_FONT_SIZE = 30;\r
-    static constexpr uint16_t LABEL_X_SIZE = 200;\r
-    static constexpr uint16_t LABEL_Y_SIZE = 60;\r
-    static constexpr uint16_t TITLE_LABEL_X = 130;\r
-    static constexpr uint16_t TITLE_LABEL_Y = 52;\r
-\r
-    static constexpr uint16_t BTN1_LABEL_X = 65;\r
-    static constexpr uint16_t BTN1_LABEL_Y = 205;\r
-    static constexpr uint16_t BTN2_LABEL_X = 206;\r
-    static constexpr uint16_t BTN2_LABEL_Y = 205;\r
-    static constexpr uint16_t BTN3_LABEL_X = 65;\r
-    static constexpr uint16_t BTN3_LABEL_Y = 355;\r
-\r
-    // 图片设置\r
-    static constexpr uint16_t BTN_IMAGE_SIZE = 100;\r
-\r
-    static constexpr uint16_t BTN1_IMAGE_X = 126;\r
-    static constexpr uint16_t BTN1_IMAGE_Y = 148;\r
-\r
-    static constexpr uint16_t BTN2_IMAGE_X = 276;\r
-    static constexpr uint16_t BTN2_IMAGE_Y = 148;\r
-\r
-    static constexpr uint16_t BTN3_IMAGE_X = 129;\r
-    static constexpr uint16_t BTN3_IMAGE_Y = 298;\r
-\r
-    static constexpr uint16_t BTNMORE_IMAGE_X = 276;\r
-    static constexpr uint16_t BTNMORE_IMAGE_Y = 324;\r
-\r
-    static TraingView *g_pTraingView{nullptr};\r
-\r
-    TraingView::TraingView()\r
-    {\r
-        g_pTraingView = this;\r
-        TraingModel::GetInstance()->SetEntryType(APPLIST_ENTER);\r
-    }\r
-\r
-    TraingView::~TraingView()\r
-    {\r
-        DeInitView();\r
-        g_pTraingView = nullptr;\r
-    }\r
-    TraingView *TraingView::GetInstance()\r
-    {\r
-        return g_pTraingView;\r
-    }\r
-\r
-    /***\r
-     * @description:\r
-     * @return\r
-     * @brief 添加标签\r
-     */\r
-    bool TraingView::AddLabel()\r
-    {\r
-        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::AddLabel");\r
-        // 初始化标签\r
-        InitLabelExt(title_label, TITLE_LABEL_X, TITLE_LABEL_Y, LABEL_X_SIZE, LABEL_Y_SIZE, "title_label", STR_RAPID_TRAINING, DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
-\r
-        InitLabelExt(btn1_label, BTN1_LABEL_X, BTN1_LABEL_Y, LABEL_X_SIZE, LABEL_Y_SIZE, "btu1_label", STR_EXERCISE_OUTDOORWALKING, DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
-        InitLabelExt(btn2_label, BTN2_LABEL_X, BTN2_LABEL_Y, LABEL_X_SIZE, LABEL_Y_SIZE, "btu2_label", STR_EXERCISE_OUTDOORBIKING, DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
-        InitLabelExt(btn3_label, BTN3_LABEL_X, BTN3_LABEL_Y, LABEL_X_SIZE, LABEL_Y_SIZE, "btu3_label", STR_EXERCISE_OUTDOORRUNNING, DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
-        InitLabelExt(btnmore_label, BTN2_LABEL_X, BTN3_LABEL_Y, LABEL_X_SIZE, LABEL_Y_SIZE, "btumore_label", STR_MORE, DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
-        return true;\r
-    }\r
-\r
-    bool TraingView::AddButton()\r
-    {\r
-        InitButton(button1_, BUTTON1_X, BUTTON1_Y, BUTTON_WIDHT, BUTTON_HEIGHT, BUTTON1);\r
-        button1_->SetImageSrc(BUTTONGROUND2_IMAGE, BUTTONGROUND2_IMAGE);\r
-        UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
-        button1_->SetOnClickListener(button1Click);\r
-\r
-        InitButton(button2_, BUTTON2_X, BUTTON2_Y, BUTTON_WIDHT, BUTTON_HEIGHT, BUTTON2);\r
-        button2_->SetImageSrc(BOUTTONGROUND_IMAGE, BOUTTONGROUND_IMAGE);\r
-        UIView::OnClickListener *button2Click = static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
-        button2_->SetOnClickListener(button2Click);\r
-\r
-        InitButton(button3_, BUTTON3_X, BUTTON3_Y, BUTTON_WIDHT, BUTTON_HEIGHT, BUTTON3);\r
-        button3_->SetImageSrc(BOUTTONGROUND_IMAGE, BOUTTONGROUND_IMAGE);\r
-        UIView::OnClickListener *button3Click = static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
-        button3_->SetOnClickListener(button3Click);\r
-\r
-        InitButton(buttonmore_, BUTTONMORE_X, BUTTONMORE_Y, BUTTON_WIDHT, BUTTON_HEIGHT, BUTTONMORE);\r
-        buttonmore_->SetImageSrc(BUTTONGROUND2_IMAGE, BUTTONGROUND2_IMAGE);\r
-        UIView::OnClickListener *button4Click = static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
-        buttonmore_->SetOnClickListener(button4Click);\r
-\r
-        return true;\r
-    }\r
-    /***\r
-     * @description:\r
-     * @return\r
-     * @brief 添加图片\r
-     */\r
-    bool TraingView::AddImageView()\r
-    {\r
-\r
-        InitImageView(btn1_image, BTN1_IMAGE_X, BTN1_IMAGE_Y, BTN_IMAGE_SIZE, BTN_IMAGE_SIZE, "btn1_image", WALKING_60_IMAGE);\r
-        InitImageView(btn2_image, BTN2_IMAGE_X, BTN2_IMAGE_Y, BTN_IMAGE_SIZE, BTN_IMAGE_SIZE, "btn2_image", RIDING_60_IMAGE);\r
-        InitImageView(btn3_image, BTN3_IMAGE_X, BTN3_IMAGE_Y, BTN_IMAGE_SIZE, BTN_IMAGE_SIZE, "btn3_image", RUNNING_60_IMAGE);\r
-        InitImageView(btnmore_image, BTNMORE_IMAGE_X, BTNMORE_IMAGE_Y, BTN_IMAGE_SIZE, BTN_IMAGE_SIZE, "btnmore_image", MORE_ICON_IMAGE);\r
-        return true;\r
-    }\r
-    void TraingView::InitView()\r
-    {\r
-        if (container_ == nullptr)\r
-        {\r
-            container_ = new UIViewGroup();\r
-            container_->SetPosition(0, 0, 466, 466);\r
-            container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
-        }\r
-\r
-        // 初始化按键\r
-        AddButton();\r
-        // 初始化标签\r
-        AddLabel();\r
-        // 初始化图片\r
-        AddImageView();\r
-\r
-        container_->Add(button1_);\r
-        container_->Add(button2_);\r
-        container_->Add(button3_);\r
-        container_->Add(buttonmore_);\r
-\r
-        container_->Add(title_label);\r
-        container_->Add(btn1_label);\r
-        container_->Add(btn2_label);\r
-        container_->Add(btn3_label);\r
-        container_->Add(btnmore_label);\r
-\r
-        container_->Add(btn1_image);\r
-        container_->Add(btn2_image);\r
-        container_->Add(btn3_image);\r
-        container_->Add(btnmore_image);\r
-\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::InitView");\r
-    }\r
-\r
-    void TraingView::DeInitView()\r
-    {\r
-        if(container_)\r
-        {\r
-            container_->RemoveAll(); \r
-        }\r
-\r
-        if (buttonmore_ != nullptr)\r
-        {\r
-            delete buttonmore_;\r
-            buttonmore_ = nullptr;\r
-        }\r
-        if (button1_ != nullptr)\r
-        {\r
-            delete button1_;\r
-            button1_ = nullptr;\r
-        }\r
-        if (button2_ != nullptr)\r
-        {\r
-            delete button2_;\r
-            button2_ = nullptr;\r
-        }\r
-        if (button3_ != nullptr)\r
-        {\r
-            delete button3_;\r
-            button3_ = nullptr;\r
-        }\r
-        if (title_label != nullptr)\r
-        {\r
-            delete title_label;\r
-            title_label = nullptr;\r
-        }\r
-        if (btn1_label != nullptr)\r
-        {\r
-            delete btn1_label;\r
-            btn1_label = nullptr;\r
-        }\r
-        if (btn2_label != nullptr)\r
-        {\r
-            delete btn2_label;\r
-            btn2_label = nullptr;\r
-        }\r
-        if (btn3_label != nullptr)\r
-        {\r
-            delete btn3_label;\r
-            btn3_label = nullptr;\r
-        }\r
-        if (btnmore_label != nullptr)\r
-        {\r
-            delete btnmore_label;\r
-            btnmore_label = nullptr;\r
-        }\r
-        if (btn1_image != nullptr)\r
-        {\r
-            delete btn1_image;\r
-            btn1_image = nullptr;\r
-        }\r
-        if (btn2_image != nullptr)\r
-        {\r
-            delete btn2_image;\r
-            btn2_image = nullptr;\r
-        }\r
-        if (btn3_image != nullptr)\r
-        {\r
-            delete btn3_image;\r
-            btn3_image = nullptr;\r
-        }\r
-        if (btnmore_image != nullptr)\r
-        {\r
-            delete btnmore_image;\r
-            btnmore_image = nullptr;\r
-        }\r
-    }\r
-\r
-    // 设置按键监听\r
-    static void SetKeyActListener()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");\r
-        // 增加按键监听\r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingPresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
-    }\r
-    void TraingView::OnStart()\r
-    {\r
+namespace OHOS {\r
+// 按钮设置\r
+static constexpr uint16_t BUTTON_WIDHT = 140;\r
+static constexpr uint16_t BUTTON_HEIGHT = 140;\r
+static constexpr uint16_t BUTTON1_X = 86;\r
+static constexpr uint16_t BUTTON1_Y = 118;\r
+static constexpr uint16_t BUTTON2_X = 236;\r
+static constexpr uint16_t BUTTON2_Y = 118;\r
+static constexpr uint16_t BUTTON3_X = 86;\r
+static constexpr uint16_t BUTTON3_Y = 268;\r
+static constexpr uint16_t BUTTONMORE_X = 236;\r
+static constexpr uint16_t BUTTONMORE_Y = 268;\r
+\r
+// 标签设置\r
+static constexpr uint16_t LABEL_FONT_SIZE = 30;\r
+static constexpr uint16_t LABEL_X_SIZE = 120;\r
+static constexpr uint16_t LABEL_Y_SIZE = 60;\r
+static constexpr uint16_t TITLE_LABEL_X = 230;\r
+static constexpr uint16_t TITLE_LABEL_Y = 52;\r
+\r
+static constexpr uint16_t BTN1_LABEL_X = 95;\r
+static constexpr uint16_t BTN1_LABEL_Y = 205;\r
+static constexpr uint16_t BTN2_LABEL_X = 236;\r
+static constexpr uint16_t BTN2_LABEL_Y = 205;\r
+static constexpr uint16_t BTN3_LABEL_X = 95;\r
+static constexpr uint16_t BTN3_LABEL_Y = 355;\r
+\r
+// 图片设置\r
+static constexpr uint16_t BTN_IMAGE_SIZE = 100;\r
+\r
+static constexpr uint16_t BTN1_IMAGE_X = 126;\r
+static constexpr uint16_t BTN1_IMAGE_Y = 148;\r
+\r
+static constexpr uint16_t BTN2_IMAGE_X = 276;\r
+static constexpr uint16_t BTN2_IMAGE_Y = 148;\r
+\r
+static constexpr uint16_t BTN3_IMAGE_X = 129;\r
+static constexpr uint16_t BTN3_IMAGE_Y = 298;\r
+\r
+static constexpr uint16_t BTNMORE_IMAGE_X = 276;\r
+static constexpr uint16_t BTNMORE_IMAGE_Y = 324;\r
+\r
+static TraingView *g_pTraingView{nullptr};\r
+\r
+TraingView::TraingView() {\r
+  g_pTraingView = this;\r
+  TraingModel::GetInstance()->SetEntryType(APPLIST_ENTER);\r
+}\r
+\r
+TraingView::~TraingView() {\r
+  DeInitView();\r
+  g_pTraingView = nullptr;\r
+}\r
+TraingView *TraingView::GetInstance() { return g_pTraingView; }\r
+\r
+/***\r
+ * @description:\r
+ * @return\r
+ * @brief 添加标签\r
+ */\r
+bool TraingView::AddLabel() {\r
+  // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::AddLabel");\r
+  // 初始化标签\r
+  InitRollLabel(title_label, 83, 50, 300, 35, "title_label", STR_RAPID_TRAINING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+\r
+  InitRollLabel(btn1_label, BTN1_LABEL_X, BTN1_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btu1_label", STR_EXERCISE_OUTDOORWALKING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  InitRollLabel(btn2_label, BTN2_LABEL_X, BTN2_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btu2_label", STR_EXERCISE_FREETRAINING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  InitRollLabel(btn3_label, BTN3_LABEL_X, BTN3_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btu3_label", STR_EXERCISE_OUTDOORRUNNING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  InitRollLabel(btnmore_label, BTN2_LABEL_X + 10, BTN3_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btumore_label", STR_MORE,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  return true;\r
+}\r
+\r
+bool TraingView::AddButton() {\r
+  InitButton(button1_, BUTTON1_X, BUTTON1_Y, BUTTON_WIDHT, BUTTON_HEIGHT,\r
+             BUTTON1);\r
+  button1_->SetImageSrc(BUTTONGROUND2_IMAGE, BUTTONGROUND2_IMAGE);\r
+  UIView::OnClickListener *button1Click =\r
+      static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
+  button1_->SetOnClickListener(button1Click);\r
+\r
+  InitButton(button2_, BUTTON2_X, BUTTON2_Y, BUTTON_WIDHT, BUTTON_HEIGHT,\r
+             BUTTON2);\r
+  button2_->SetImageSrc(BOUTTONGROUND_IMAGE, BOUTTONGROUND_IMAGE);\r
+  UIView::OnClickListener *button2Click =\r
+      static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
+  button2_->SetOnClickListener(button2Click);\r
+\r
+  InitButton(button3_, BUTTON3_X, BUTTON3_Y, BUTTON_WIDHT, BUTTON_HEIGHT,\r
+             BUTTON3);\r
+  button3_->SetImageSrc(BOUTTONGROUND_IMAGE, BOUTTONGROUND_IMAGE);\r
+  UIView::OnClickListener *button3Click =\r
+      static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
+  button3_->SetOnClickListener(button3Click);\r
+\r
+  InitButton(buttonmore_, BUTTONMORE_X, BUTTONMORE_Y, BUTTON_WIDHT,\r
+             BUTTON_HEIGHT, BUTTONMORE);\r
+  buttonmore_->SetImageSrc(BUTTONGROUND2_IMAGE, BUTTONGROUND2_IMAGE);\r
+  UIView::OnClickListener *button4Click =\r
+      static_cast<UIView::OnClickListener *>(TraingPresenter::GetInstance());\r
+  buttonmore_->SetOnClickListener(button4Click);\r
+\r
+  return true;\r
+}\r
+/***\r
+ * @description:\r
+ * @return\r
+ * @brief 添加图片\r
+ */\r
+bool TraingView::AddImageView() {\r
+\r
+  InitImageView(btn1_image, BTN1_IMAGE_X, BTN1_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btn1_image", WALKING_60_IMAGE);\r
+  InitImageView(btn2_image, BTN2_IMAGE_X, BTN2_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btn2_image", FREE_60_IMAGE);\r
+  InitImageView(btn3_image, BTN3_IMAGE_X, BTN3_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btn3_image", RUNNING_60_IMAGE);\r
+  InitImageView(btnmore_image, BTNMORE_IMAGE_X, BTNMORE_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btnmore_image", MORE_ICON_IMAGE);\r
+  return true;\r
+}\r
+void TraingView::InitView() {\r
+  if (container_ == nullptr) {\r
+    container_ = new UIViewGroup();\r
+    container_->SetPosition(0, 0, 466, 466);\r
+    container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+  }\r
+\r
+  // 初始化按键\r
+  AddButton();\r
+  // 初始化标签\r
+  AddLabel();\r
+  // 初始化图片\r
+  AddImageView();\r
+\r
+  container_->Add(button1_);\r
+  container_->Add(button2_);\r
+  container_->Add(button3_);\r
+  container_->Add(buttonmore_);\r
+\r
+  container_->Add(title_label);\r
+  container_->Add(btn1_label);\r
+  container_->Add(btn2_label);\r
+  container_->Add(btn3_label);\r
+  container_->Add(btnmore_label);\r
+\r
+  container_->Add(btn1_image);\r
+  container_->Add(btn2_image);\r
+  container_->Add(btn3_image);\r
+  container_->Add(btnmore_image);\r
+\r
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::InitView");\r
+}\r
+\r
+void TraingView::DeInitView() {\r
+  if (container_) {\r
+    container_->RemoveAll();\r
+  }\r
+\r
+  if (buttonmore_ != nullptr) {\r
+    delete buttonmore_;\r
+    buttonmore_ = nullptr;\r
+  }\r
+  if (button1_ != nullptr) {\r
+    delete button1_;\r
+    button1_ = nullptr;\r
+  }\r
+  if (button2_ != nullptr) {\r
+    delete button2_;\r
+    button2_ = nullptr;\r
+  }\r
+  if (button3_ != nullptr) {\r
+    delete button3_;\r
+    button3_ = nullptr;\r
+  }\r
+  if (title_label != nullptr) {\r
+    delete title_label;\r
+    title_label = nullptr;\r
+  }\r
+  if (btn1_label != nullptr) {\r
+    delete btn1_label;\r
+    btn1_label = nullptr;\r
+  }\r
+  if (btn2_label != nullptr) {\r
+    delete btn2_label;\r
+    btn2_label = nullptr;\r
+  }\r
+  if (btn3_label != nullptr) {\r
+    delete btn3_label;\r
+    btn3_label = nullptr;\r
+  }\r
+  if (btnmore_label != nullptr) {\r
+    delete btnmore_label;\r
+    btnmore_label = nullptr;\r
+  }\r
+  if (btn1_image != nullptr) {\r
+    delete btn1_image;\r
+    btn1_image = nullptr;\r
+  }\r
+  if (btn2_image != nullptr) {\r
+    delete btn2_image;\r
+    btn2_image = nullptr;\r
+  }\r
+  if (btn3_image != nullptr) {\r
+    delete btn3_image;\r
+    btn3_image = nullptr;\r
+  }\r
+  if (btnmore_image != nullptr) {\r
+    delete btnmore_image;\r
+    btnmore_image = nullptr;\r
+  }\r
+}\r
+\r
+// 设置按键监听\r
+static void SetKeyActListener() {\r
+  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");\r
+  // 增加按键监听\r
+  RootView::OnKeyActListener *keyactListener =\r
+      (RootView::OnKeyActListener *)OHOS::TraingPresenter::GetInstance();\r
+  RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+}\r
+void TraingView::OnStart() {\r
 #if 0\r
         printf(" data--training1_Text: %s\n", data->training1_Text.c_str());\r
         printf(" data--training1_Image: %s\n", data->training1_Image.c_str());\r
@@ -247,55 +241,50 @@ namespace OHOS
         printf(" data--training3_Text: %s\n", data->training3_Text.c_str());\r
         printf(" data--training3_Image: %s\n", data->training3_Image.c_str());\r
 #endif\r
-        container_ = new UIViewGroup();\r
-        if (container_ == nullptr)\r
-        {\r
-            return;\r
-        }\r
-        container_->SetPosition(0, 0);\r
-        container_->SetWidth(Screen::GetInstance().GetWidth());\r
-        container_->SetHeight(Screen::GetInstance().GetHeight());\r
-\r
-        // 创建 draglistener 实例并设置为拖动监听器\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingPresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
-        {\r
-            return;\r
-        }\r
-        container_->SetOnDragListener(draglistener);\r
-        container_->SetTouchable(true);\r
-        container_->SetDraggable(true);\r
-\r
-       InitView();\r
-\r
-        SetContainerView(container_);\r
-        // 增加按键监听\r
-        SetKeyActListener();\r
-    }\r
-\r
-    void TraingView::OnSetUpView()\r
-    {\r
-        View<TraingPresenter>::OnSetUpView();\r
-        Draw();\r
-    }\r
-\r
-    void TraingView::OnTearDownView()\r
-    {\r
-        View<TraingPresenter>::OnTearDownView();\r
-        return;\r
-    }\r
-\r
-    void TraingView::OnStop()\r
-    {\r
-        View<TraingPresenter>::OnStop();\r
-\r
-        if (container_ != nullptr)\r
-        {\r
-            container_->RemoveAll();\r
-            delete container_;\r
-            container_ = nullptr;\r
-        }\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
-    }\r
+  container_ = new UIViewGroup();\r
+  if (container_ == nullptr) {\r
+    return;\r
+  }\r
+  container_->SetPosition(0, 0);\r
+  container_->SetWidth(Screen::GetInstance().GetWidth());\r
+  container_->SetHeight(Screen::GetInstance().GetHeight());\r
+\r
+  // 创建 draglistener 实例并设置为拖动监听器\r
+  UIView::OnDragListener *draglistener =\r
+      static_cast<UIView::OnDragListener *>(TraingPresenter::GetInstance());\r
+  if (draglistener == nullptr) {\r
+    return;\r
+  }\r
+  container_->SetOnDragListener(draglistener);\r
+  container_->SetTouchable(true);\r
+  container_->SetDraggable(true);\r
+\r
+  InitView();\r
+\r
+  SetContainerView(container_);\r
+  // 增加按键监听\r
+  SetKeyActListener();\r
+}\r
+\r
+void TraingView::OnSetUpView() {\r
+  View<TraingPresenter>::OnSetUpView();\r
+  Draw();\r
+}\r
+\r
+void TraingView::OnTearDownView() {\r
+  View<TraingPresenter>::OnTearDownView();\r
+  return;\r
+}\r
+\r
+void TraingView::OnStop() {\r
+  View<TraingPresenter>::OnStop();\r
+\r
+  if (container_ != nullptr) {\r
+    container_->RemoveAll();\r
+    delete container_;\r
+    container_ = nullptr;\r
+  }\r
+  RootView::GetInstance()->RemoveAll();\r
+  return;\r
 }\r
+} // namespace OHOS\r
index 74a89df..69375a7 100644 (file)
@@ -3,65 +3,66 @@
 
 #include "BaseView.h"
 #include "View.h"
-#include <ui_scroll_view.h>
-#include "components/ui_view_group.h"
-#include "components/ui_label.h"
-#include "components/ui_label_ext.h"
-#include "components/ui_image_view.h"
 #include "components/ui_button.h"
+#include "components/ui_card_page.h"
+#include "components/ui_chart.h"
 #include "components/ui_image_animator.h"
+#include "components/ui_image_view.h"
+#include "components/ui_label.h"
 #include "components/ui_label_button_ext.h"
-#include "components/ui_chart.h"
-#include "wearable_log.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_view_group.h"
 #include "ohos_types.h"
-#include "components/ui_card_page.h"
-
-namespace OHOS
-{
-#define BUTTON1 "button1"    // 按键1
-#define BUTTON2 "button2"    // 按键2
-#define BUTTON3 "button3"    // 按键3
-#define BUTTONMORE "button4" // 按键 更多
+#include "traing/training_card/include/Training_CardView.h"
+#include "wearable_log.h"
+#include <ui_scroll_view.h>
+namespace OHOS {
 
-    class Training_CardView : public UICardPage
-    {
+#define BUTTON1 "button1"       // 按键1
+#define BUTTON2 "button2"       // 按键2
+#define BUTTON3 "button3"       // 按键3
+#define BUTTONMORE "buttonmore" // 按键 更多
 
-    public:
-        Training_CardView();
-        virtual ~Training_CardView();
-        static Training_CardView *GetInstance(void);
+class TraingPresenter;
+class Training_CardView : public UICardPage {
+public:
+  Training_CardView();
+  virtual ~Training_CardView();
+  static Training_CardView *GetInstance(void);
 
-        bool InitView();
-        void DeInit();
+  void PreLoad(void) override;
+  void UnLoad(void) override;
 
-        bool AddButton();
-        bool InitImage();
-        bool InitLable();
+  bool AddLabel();
+  bool AddButton();
+  bool AddImageView();
+  void InitView();
+  void DeInitView();
 
-        void PreLoad(void) override;
-        void UnLoad(void) override;
+  UIView *GetView();
+  bool InitPage(void);
 
-        bool LoadImage(UIImageView *view, uint32_t resId);
-        bool LoadImage(UILabelButtonExt *view, uint32_t resId);
+private:
+  Training_CardView(Training_CardView &&) = delete;
+  Training_CardView &operator=(Training_CardView &&) = delete;
 
-    private:
-        UIView::OnDragListener *draglistener{nullptr};
-        Training_CardView(Training_CardView &&) = delete;
-        Training_CardView &operator=(Training_CardView &&) = delete;
+  UIButton *buttonmore_ = nullptr;
+  UIButton *button1_ = nullptr;
+  UIButton *button2_ = nullptr;
+  UIButton *button3_ = nullptr;
 
-        UILabelButtonExt *Button1 = nullptr;
-        UILabelButtonExt *Button2 = nullptr;
-        UILabelButtonExt *Button3 = nullptr;
-        UILabelButtonExt *ButtonMore = nullptr;
+  UILabelExt *title_label = nullptr;
+  UILabelExt *btn1_label = nullptr;
+  UILabelExt *btn2_label = nullptr;
+  UILabelExt *btn3_label = nullptr;
+  UILabelExt *btnmore_label = nullptr;
 
-        UILabelExt *titleLabel = nullptr;
-        UIImageView *image1 = nullptr;
-        UIImageView *image2 = nullptr;
-        UIImageView *image3 = nullptr;
-        UIImageView *imagemore = nullptr;
+  UIImageView *btn1_image = nullptr;
+  UIImageView *btn2_image = nullptr;
+  UIImageView *btn3_image = nullptr;
+  UIImageView *btnmore_image = nullptr;
 
-        bool viewiInitStatus{false};
-        bool resLoadStatus{false};
-    };
+  bool viewiInitStatus{false};
+};
 } // namespace OHOS
 #endif // Traing_PRESENTER_H
index d1b958d..9007204 100644 (file)
@@ -50,7 +50,8 @@ namespace OHOS
         {
             NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGNOMAL);
             // NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGNOMAL);
-            TraingModel::GetInstance()->SetSportEvent(STR_EXERCISE_OUTDOORBIKING);
+            TraingModel::GetInstance()->SetSportEvent(
+                STR_EXERCISE_FREETRAINING);
         }
         if (strcmp(view.GetViewId(), BUTTON3) == 0)
         {
index 5821430..7a2fa6c 100644 (file)
 \r
 #include "traing/training_card/include/Training_CardView.h"\r
-\r
-#include "common/image_cache_manager.h"\r
-#include "components/ui_label_ext.h"\r
-#include "ui_resource_string.h"\r
-#include "UiConfig.h"\r
-#include "ui_resource_image.h"\r
-#include <ui_scroll_view.h>\r
-#include "components/ui_button.h"\r
-#include "components/ui_view_group.h"\r
-#include "common/image_cache_manager.h"\r
-#include "MainPresenterSample.h"\r
-#include "traing/training_card/include/Training_CardPresenter.h"\r
+#include "traing/Training_UiConfig.h"\r
 #include "traing/include/TraingModel.h"\r
+#include "traing/training_card/include/Training_CardPresenter.h"\r
 #include "uicomponents/UIComponents.h"\r
-#include "traing/Training_UiConfig.h"\r
-\r
-namespace OHOS\r
-{\r
-    static Training_CardView *g_pTraining_CardView{nullptr};\r
-    std::string file = TRAINING_IAMGES;\r
-    Training_CardView::Training_CardView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training_CardView::Training_CardView");\r
-        SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
-        g_pTraining_CardView = this;\r
-    }\r
-\r
-    Training_CardView::~Training_CardView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training_CardView::~Training_CardView");\r
-        RemoveAll();\r
-        DeInit();\r
-        g_pTraining_CardView = nullptr;\r
-    }\r
-\r
-    Training_CardView *Training_CardView::GetInstance()\r
-    {\r
-        return g_pTraining_CardView;\r
-    }\r
-    bool Training_CardView::InitLable()\r
-    {\r
-        //  初始化标签\r
-        InitLabelExt(titleLabel, 130, 52, 200, 60, "title_label", STR_RAPID_TRAINING, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        Add(titleLabel);\r
-        return true;\r
-    }\r
-    /* -------------------------------------------------------------------------- */\r
-    // 加载图片函数(针对UILabelButtonExt)\r
-    bool Training_CardView::LoadImage(UILabelButtonExt *view, uint32_t resId)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingView LoadImage: %s, resID=0x%x", TRAINING_IAMGES, resId);\r
-        ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);\r
-        if (image == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Training_CardView::LoadImage %x fail", resId);\r
-            return false;\r
-        }\r
-        if (view == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "view is null");\r
-            return false;\r
-        }\r
-        view->SetImageSrc(image, image);\r
-        return true;\r
-    }\r
-\r
-    // 加载图片函数(针对UIImageView)\r
-    bool Training_CardView::LoadImage(UIImageView *view, uint32_t resId)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingView LoadImage: %s, resID=0x%x", TRAINING_IAMGES, resId);\r
-        ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);\r
-        if (image == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Training_CardView::LoadImage %x fail", resId);\r
-            return false;\r
-        }\r
-        if (view == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "view is null");\r
-            return false;\r
-        }\r
-        view->SetSrc(image); // Assuming SetSrc is the correct function for UIImageView\r
-        return true;\r
-    }\r
-\r
-    bool Training_CardView::AddButton()\r
-    {\r
-        struct ButtonInfo\r
-        {\r
-            UIResourceTextId textid;\r
-            char *viewid;\r
-            uint32_t defaultImgSrc;\r
-            UILabelButtonExt *button;\r
-            uint16_t posX;\r
-            uint16_t posY;\r
-        };\r
-\r
-        ButtonInfo buttons[] = {\r
-            {STR_EXERCISE_OUTDOORWALKING, BUTTON1, TRAINING_BUTTONGROUND2, Button1, 86, 118},\r
-            {STR_EXERCISE_OUTDOORBIKING, BUTTON2, TRAINING_BOUTTONGROUND, Button2, 236, 118},\r
-            {STR_EXERCISE_OUTDOORRUNNING, BUTTON3, TRAINING_BOUTTONGROUND, Button3, 86, 268},\r
-            {STR_MORE, BUTTONMORE, TRAINING_MORE, ButtonMore, 236, 268}};\r
-\r
-        for (auto &buttonInfo : buttons)\r
-        {\r
-\r
-            buttonInfo.button = new UILabelButtonExt();\r
-            if (buttonInfo.button == nullptr)\r
-            {\r
-                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "buttonInfo.button is NULL");\r
-            }\r
-\r
-            buttonInfo.button->SetPosition(buttonInfo.posX, buttonInfo.posY);\r
-            buttonInfo.button->Resize(140, 140);\r
-            // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Id:[%s]", buttonInfo.viewid);\r
-            buttonInfo.button->SetTextId(buttonInfo.textid);\r
-            buttonInfo.button->SetLabelPosition(0, 70);\r
-            buttonInfo.button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 25);\r
-            buttonInfo.button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff19ff41, UIButton::PRESSED);\r
-            buttonInfo.button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-            buttonInfo.button->SetViewId(buttonInfo.viewid);\r
-            UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::TraingOnClickListener::GetInstance();\r
-            if (clickListener == nullptr)\r
-            {\r
-                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddButton::OnStart clickListener NULL");\r
-                return false;\r
-            }\r
-            buttonInfo.button->SetOnClickListener(clickListener);\r
-            // 根据按钮的 viewid 分配给对应的成员变量\r
-            if (strcmp(buttonInfo.viewid, BUTTON1) == 0)\r
-            {\r
-                Button1 = buttonInfo.button;\r
-            }\r
-            else if (strcmp(buttonInfo.viewid, BUTTON2) == 0)\r
-            {\r
-                Button2 = buttonInfo.button;\r
-            }\r
-            else if (strcmp(buttonInfo.viewid, BUTTON3) == 0)\r
-            {\r
-                Button3 = buttonInfo.button;\r
-            }\r
-            else if (strcmp(buttonInfo.viewid, BUTTONMORE) == 0)\r
-            {\r
-                ButtonMore = buttonInfo.button;\r
-            }\r
-        }\r
-\r
-        Add(Button1);\r
-        Add(Button2);\r
-        Add(Button3);\r
-        Add(ButtonMore);\r
-        return true;\r
-    }\r
-\r
-    bool Training_CardView::InitImage()\r
-    {\r
-        struct ImageInfo\r
-        {\r
-            UIImageView *image;\r
-            const int imagePath;\r
-            uint16_t posX;\r
-            uint16_t posY;\r
-            const char *viewId;\r
-        };\r
-\r
-        ImageInfo images[] = {\r
-            {image1, TRAINING_WALKING_BIG, 126, 148, "image3"},\r
-            {image2, TRAINING_RIDING_BIG2, 276, 148, "image2"},\r
-            {image3, TRAINING_RUNNING_BIG, 126, 298, "image1"}};\r
-\r
-        for (auto &imageInfo : images)\r
-        {\r
-            imageInfo.image = new UIImageView();\r
-            if (imageInfo.image == nullptr)\r
-            {\r
-                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "imageInfo.image is NULL");\r
-            }\r
-            imageInfo.image->SetPosition(imageInfo.posX, imageInfo.posY);\r
-            imageInfo.image->Resize(100, 100);\r
-\r
-            imageInfo.image->SetViewId(imageInfo.viewId);\r
-            // Add(imageInfo.image);\r
-        }\r
-\r
-        image1 = images[0].image;\r
-        image2 = images[1].image;\r
-        image3 = images[2].image;\r
-\r
-        Add(image1);\r
-        Add(image2);\r
-        Add(image3);\r
-\r
-        return true;\r
-    }\r
-    /* -------------------------------------------------------------------------- */\r
-    bool Training_CardView::InitView()\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training_CardView::InitView()");\r
-        if (!InitLable())\r
-        {\r
-            printf("InitLable error!\n");\r
-        };\r
-        if (!AddButton())\r
-        {\r
-            printf("AddButton error!\n");\r
-        };\r
-        if (!InitImage())\r
-        {\r
-            printf("InitImage error!\n");\r
-        };\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training_CardView::InitView() is ok");\r
-        // SetCoverable(true);\r
-        return true;\r
-    }\r
-\r
-    void Training_CardView::DeInit()\r
-    {\r
-        UIImageView *imageViews[] = {image1, image2, image3};\r
-        UIButton *buttons[] = {ButtonMore, Button1, Button3, Button2};\r
-\r
-        for (auto &imageView : imageViews)\r
-        {\r
-            if (imageView != nullptr)\r
-            {\r
-                delete imageView;\r
-                imageView = nullptr;\r
-            }\r
-        }\r
-\r
-        for (auto &button : buttons)\r
-        {\r
-            if (button != nullptr)\r
-            {\r
-                delete button;\r
-                button = nullptr;\r
-            }\r
-        }\r
+#include <iostream>\r
+#include <string>\r
+\r
+namespace OHOS {\r
+// 按钮设置\r
+static constexpr uint16_t BUTTON_WIDHT = 140;\r
+static constexpr uint16_t BUTTON_HEIGHT = 140;\r
+static constexpr uint16_t BUTTON1_X = 86;\r
+static constexpr uint16_t BUTTON1_Y = 118;\r
+static constexpr uint16_t BUTTON2_X = 236;\r
+static constexpr uint16_t BUTTON2_Y = 118;\r
+static constexpr uint16_t BUTTON3_X = 86;\r
+static constexpr uint16_t BUTTON3_Y = 268;\r
+static constexpr uint16_t BUTTONMORE_X = 236;\r
+static constexpr uint16_t BUTTONMORE_Y = 268;\r
+\r
+// 标签设置\r
+static constexpr uint16_t LABEL_FONT_SIZE = 30;\r
+static constexpr uint16_t LABEL_X_SIZE = 120;\r
+static constexpr uint16_t LABEL_Y_SIZE = 60;\r
+static constexpr uint16_t TITLE_LABEL_X = 230;\r
+static constexpr uint16_t TITLE_LABEL_Y = 52;\r
+\r
+static constexpr uint16_t BTN1_LABEL_X = 95;\r
+static constexpr uint16_t BTN1_LABEL_Y = 205;\r
+static constexpr uint16_t BTN2_LABEL_X = 236;\r
+static constexpr uint16_t BTN2_LABEL_Y = 205;\r
+static constexpr uint16_t BTN3_LABEL_X = 95;\r
+static constexpr uint16_t BTN3_LABEL_Y = 355;\r
+\r
+// 图片设置\r
+static constexpr uint16_t BTN_IMAGE_SIZE = 100;\r
+static constexpr uint16_t BTN1_IMAGE_X = 126;\r
+static constexpr uint16_t BTN1_IMAGE_Y = 148;\r
+\r
+static constexpr uint16_t BTN2_IMAGE_X = 276;\r
+static constexpr uint16_t BTN2_IMAGE_Y = 148;\r
+\r
+static constexpr uint16_t BTN3_IMAGE_X = 129;\r
+static constexpr uint16_t BTN3_IMAGE_Y = 298;\r
+\r
+static constexpr uint16_t BTNMORE_IMAGE_X = 276;\r
+static constexpr uint16_t BTNMORE_IMAGE_Y = 324;\r
+\r
+static Training_CardView *g_pTraining_CardView{nullptr};\r
+\r
+Training_CardView::Training_CardView() {\r
+  g_pTraining_CardView = this;\r
+  SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+}\r
 \r
-        if (titleLabel != nullptr)\r
-        {\r
-            delete titleLabel;\r
-            titleLabel = nullptr;\r
-        }\r
-    }\r
+Training_CardView::~Training_CardView() {\r
+  DeInitView();\r
+  g_pTraining_CardView = nullptr;\r
+}\r
+Training_CardView *Training_CardView::GetInstance() {\r
+  return g_pTraining_CardView;\r
+}\r
 \r
-    void Training_CardView::PreLoad(void)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Training_CardView::PreLoad");\r
+/***\r
+ * @description:\r
+ * @return\r
+ * @brief 添加标签\r
+ */\r
+bool Training_CardView::AddLabel() {\r
+  // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::AddLabel");\r
+  // 初始化标签\r
+  InitRollLabel(title_label, 83, 50, 300, 35, "title_label", STR_RAPID_TRAINING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+\r
+  InitRollLabel(btn1_label, BTN1_LABEL_X, BTN1_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btu1_label", STR_EXERCISE_OUTDOORWALKING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  InitRollLabel(btn2_label, BTN2_LABEL_X, BTN2_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btu2_label", STR_EXERCISE_FREETRAINING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  InitRollLabel(btn3_label, BTN3_LABEL_X, BTN3_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btu3_label", STR_EXERCISE_OUTDOORRUNNING,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  InitRollLabel(btnmore_label, BTN2_LABEL_X + 10, BTN3_LABEL_Y, LABEL_X_SIZE,\r
+                LABEL_Y_SIZE, "btumore_label", STR_MORE,\r
+                DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE);\r
+  return true;\r
+}\r
 \r
-        if (!viewiInitStatus)\r
-        {\r
-            // 加载组件 ,加载imagecache\r
-            InitView();\r
-            viewiInitStatus = true;\r
-        }\r
-        if (!resLoadStatus)\r
-        {\r
-            LoadImage(image1, TRAINING_WALKING_BIG);\r
-            LoadImage(image2, TRAINING_RIDING_BIG2);\r
-            LoadImage(image3, TRAINING_RUNNING_BIG);\r
+bool Training_CardView::AddButton() {\r
+  InitButton(button1_, BUTTON1_X, BUTTON1_Y, BUTTON_WIDHT, BUTTON_HEIGHT,\r
+             BUTTON1);\r
+  button1_->SetImageSrc(BUTTONGROUND2_IMAGE, BUTTONGROUND2_IMAGE);\r
+  UIView::OnClickListener *button1Click =\r
+      static_cast<UIView::OnClickListener *>(\r
+          TraingOnClickListener::GetInstance());\r
+  button1_->SetOnClickListener(button1Click);\r
+\r
+  InitButton(button2_, BUTTON2_X, BUTTON2_Y, BUTTON_WIDHT, BUTTON_HEIGHT,\r
+             BUTTON2);\r
+  button2_->SetImageSrc(BOUTTONGROUND_IMAGE, BOUTTONGROUND_IMAGE);\r
+  UIView::OnClickListener *button2Click =\r
+      static_cast<UIView::OnClickListener *>(\r
+          TraingOnClickListener::GetInstance());\r
+  button2_->SetOnClickListener(button2Click);\r
+\r
+  InitButton(button3_, BUTTON3_X, BUTTON3_Y, BUTTON_WIDHT, BUTTON_HEIGHT,\r
+             BUTTON3);\r
+  button3_->SetImageSrc(BOUTTONGROUND_IMAGE, BOUTTONGROUND_IMAGE);\r
+  UIView::OnClickListener *button3Click =\r
+      static_cast<UIView::OnClickListener *>(\r
+          TraingOnClickListener::GetInstance());\r
+  button3_->SetOnClickListener(button3Click);\r
+\r
+  InitButton(buttonmore_, BUTTONMORE_X, BUTTONMORE_Y, BUTTON_WIDHT,\r
+             BUTTON_HEIGHT, BUTTONMORE);\r
+  buttonmore_->SetImageSrc(BUTTONGROUND2_IMAGE, BUTTONGROUND2_IMAGE);\r
+  UIView::OnClickListener *button4Click =\r
+      static_cast<UIView::OnClickListener *>(\r
+          TraingOnClickListener::GetInstance());\r
+  buttonmore_->SetOnClickListener(button4Click);\r
+\r
+  return true;\r
+}\r
+/***\r
+ * @description:\r
+ * @return\r
+ * @brief 添加图片\r
+ */\r
+bool Training_CardView::AddImageView() {\r
+\r
+  InitImageView(btn1_image, BTN1_IMAGE_X, BTN1_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btn1_image", WALKING_60_IMAGE);\r
+  InitImageView(btn2_image, BTN2_IMAGE_X, BTN2_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btn2_image", FREE_60_IMAGE);\r
+  InitImageView(btn3_image, BTN3_IMAGE_X, BTN3_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btn3_image", RUNNING_60_IMAGE);\r
+  InitImageView(btnmore_image, BTNMORE_IMAGE_X, BTNMORE_IMAGE_Y, BTN_IMAGE_SIZE,\r
+                BTN_IMAGE_SIZE, "btnmore_image", MORE_ICON_IMAGE);\r
+  return true;\r
+}\r
 \r
-            LoadImage(Button1, TRAINING_BUTTONGROUND2);\r
-            LoadImage(Button2, TRAINING_BOUTTONGROUND);\r
-            LoadImage(Button3, TRAINING_BOUTTONGROUND);\r
-            LoadImage(ButtonMore, TRAINING_MORE);\r
-            resLoadStatus = true;\r
-        }\r
-    }\r
+void Training_CardView::DeInitView() {\r
+\r
+  RemoveAll();\r
+\r
+  if (buttonmore_ != nullptr) {\r
+    delete buttonmore_;\r
+    buttonmore_ = nullptr;\r
+  }\r
+  if (button1_ != nullptr) {\r
+    delete button1_;\r
+    button1_ = nullptr;\r
+  }\r
+  if (button2_ != nullptr) {\r
+    delete button2_;\r
+    button2_ = nullptr;\r
+  }\r
+  if (button3_ != nullptr) {\r
+    delete button3_;\r
+    button3_ = nullptr;\r
+  }\r
+  if (title_label != nullptr) {\r
+    delete title_label;\r
+    title_label = nullptr;\r
+  }\r
+  if (btn1_label != nullptr) {\r
+    delete btn1_label;\r
+    btn1_label = nullptr;\r
+  }\r
+  if (btn2_label != nullptr) {\r
+    delete btn2_label;\r
+    btn2_label = nullptr;\r
+  }\r
+  if (btn3_label != nullptr) {\r
+    delete btn3_label;\r
+    btn3_label = nullptr;\r
+  }\r
+  if (btnmore_label != nullptr) {\r
+    delete btnmore_label;\r
+    btnmore_label = nullptr;\r
+  }\r
+  if (btn1_image != nullptr) {\r
+    delete btn1_image;\r
+    btn1_image = nullptr;\r
+  }\r
+  if (btn2_image != nullptr) {\r
+    delete btn2_image;\r
+    btn2_image = nullptr;\r
+  }\r
+  if (btn3_image != nullptr) {\r
+    delete btn3_image;\r
+    btn3_image = nullptr;\r
+  }\r
+  if (btnmore_image != nullptr) {\r
+    delete btnmore_image;\r
+    btnmore_image = nullptr;\r
+  }\r
+}\r
 \r
-    void Training_CardView::UnLoad(void)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Training_CardView::UnLoad");\r
-        if (resLoadStatus)\r
-        {\r
-            ImageInfo *img = nullptr;\r
-            image1->SetSrc(img);\r
-            image2->SetSrc(img);\r
-            image3->SetSrc(img);\r
+bool Training_CardView::InitPage(void) {\r
+  // 初始化按键\r
+  if (AddButton() != true) {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                  "Training_CardView::InitPage AddButton failed");\r
+    return false;\r
+  }\r
+  // 初始化标签\r
+  if (AddLabel() != true) {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                  "Training_CardView::InitPage AddLabel failed");\r
+    return false;\r
+  }\r
+  // 初始化图片\r
+  if (AddImageView() != true) {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                  "Training_CardView::InitPage AddImageView failed");\r
+    return false;\r
+  }\r
+\r
+  Add(button1_);\r
+  Add(button2_);\r
+  Add(button3_);\r
+  Add(buttonmore_);\r
+\r
+  Add(title_label);\r
+\r
+  Add(btn1_label);\r
+  Add(btn2_label);\r
+  Add(btn3_label);\r
+  Add(btnmore_label);\r
+\r
+  Add(btn1_image);\r
+  Add(btn2_image);\r
+  Add(btn3_image);\r
+  Add(btnmore_image);\r
+\r
+  return true;\r
+}\r
+void Training_CardView::PreLoad(void) {\r
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Training_CardView::PreLoad");\r
+  if (!viewiInitStatus) {\r
+    InitPage();\r
+    viewiInitStatus = true;\r
+  }\r
+}\r
 \r
-            Button1->SetImageSrc(img, img);\r
-            Button2->SetImageSrc(img, img);\r
-            Button3->SetImageSrc(img, img);\r
-            ButtonMore->SetImageSrc(img, img);\r
-            // ImageCacheManager::GetInstance().UnloadAllInMultiRes(TRAINING_IAMGES);\r
-            ImageCacheManager::GetInstance().UnloadOneInMultiRes(TRAINING_WALKING_BIG, TRAINING_IAMGES);\r
-            ImageCacheManager::GetInstance().UnloadOneInMultiRes(TRAINING_RIDING_BIG2, TRAINING_IAMGES);\r
-            ImageCacheManager::GetInstance().UnloadOneInMultiRes(TRAINING_RUNNING_BIG, TRAINING_IAMGES);\r
-            ImageCacheManager::GetInstance().UnloadOneInMultiRes(TRAINING_BUTTONGROUND2, TRAINING_IAMGES);\r
-            ImageCacheManager::GetInstance().UnloadOneInMultiRes(TRAINING_BOUTTONGROUND, TRAINING_IAMGES);\r
-            ImageCacheManager::GetInstance().UnloadOneInMultiRes(TRAINING_MORE, TRAINING_IAMGES);\r
-            resLoadStatus = false;\r
-        }\r
-    }\r
+void Training_CardView::UnLoad(void) {\r
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Training_CardView::UnLoad");\r
 }\r
+} // namespace OHOS\r
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/icon_60x60/FreeTraining_60.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/icon_60x60/FreeTraining_60.bin
new file mode 100644 (file)
index 0000000..c016302
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:137ac43eb82e53b4c8bbab2907e60182ab10da596aa29b06abaf1afd2cc5ea6c
+size 2424
diff --git a/tools/image_converter_tool/test/hert/Training/icon_60x60/FreeTraining_60.png b/tools/image_converter_tool/test/hert/Training/icon_60x60/FreeTraining_60.png
new file mode 100644 (file)
index 0000000..baf9abc
Binary files /dev/null and b/tools/image_converter_tool/test/hert/Training/icon_60x60/FreeTraining_60.png differ