From 98e4d97e7d7f7502e0ed2f1a44a8cd464eea2671 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 13 Apr 2024 17:04:26 +0800 Subject: [PATCH] =?utf8?q?=E5=90=88=E5=B9=B6UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/Training_UiConfig.h | 2 + .../training_card/include/TrainingDataView.h | 14 +-- .../include/TrainingDetailView.h | 13 +-- .../include/TrainingEndNoteView.h | 0 .../training_card/include/TrainingEndView.h | 0 .../training_card/src/TraingCardPresenter.cpp | 35 ++++--- .../training_card/src/TrainingControlView.cpp | 12 +-- .../training_card/src/TrainingDataView.cpp | 38 +++++--- .../training_card/src/TrainingDetailView.cpp | 88 +++++------------- .../training_card/src/TrainingEndNoteView.cpp | 0 .../training_card/src/TrainingEndView.cpp | 0 .../res/Training/modules/Color_Progress.bin | Bin 0 -> 125688 bytes .../res/Training/modules/Sport_continue.bin | Bin 6824 -> 8536 bytes .../user/res/Training/modules/Sport_pause.bin | Bin 6824 -> 8536 bytes .../user/res/Training/modules/Sport_stop.bin | Bin 6824 -> 8536 bytes .../res/Training/modules/sport_heartrate.bin | Bin 0 -> 1896 bytes 16 files changed, 87 insertions(+), 115 deletions(-) delete mode 100644 code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingEndNoteView.h delete mode 100644 code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingEndView.h delete mode 100644 code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingEndNoteView.cpp delete mode 100644 code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingEndView.cpp create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/Color_Progress.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/sport_heartrate.bin diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/Training_UiConfig.h b/code/sdk/application/wearable/fd230app/nativeui/traing/Training_UiConfig.h index 4bf5d9cc9..d0bbb4259 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/Training_UiConfig.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/Training_UiConfig.h @@ -54,6 +54,7 @@ namespace OHOS static constexpr const char *BUTTONGROUND2_IMAGE = MODULES "/Buttonground2.bin"; static constexpr const char *BUBBLE_IMAGE = MODULES "/Bubble.bin"; static constexpr const char *BUTTONOK_IMAGE = MODULES "/Buttonok.bin"; + static constexpr const char *COLOR_PROGRESS_IMAGE = MODULES "/Color_Progress.bin"; static constexpr const char *CALORIES_IMAGE = MODULES "/Calories.bin"; static constexpr const char *CALORIES_30_IMAGE = MODULES "/Calories_30.bin"; static constexpr const char *CONTROL_POINT_IMAGE = MODULES "/Control_point.bin"; @@ -92,6 +93,7 @@ namespace OHOS static constexpr const char *SPORT_STOP_IMAGE = MODULES "/Sport_stop.bin"; static constexpr const char *SPORT_STRENGTH_IMAGE = MODULES "/Sport_strength.bin"; static constexpr const char *STEP_30_IMAGE = MODULES "/Step_30.bin"; + static constexpr const char *SPORT_HEARTRATE_IMAGE = MODULES "/sport_heartrate.bin"; static constexpr const char *TIME_IMAGE = MODULES "/Time.bin"; static constexpr const char *WALKING_54_IMAGE = MODULES "/Walking_54.bin"; static constexpr const char *WARNING_IMAGE = MODULES "/Warning.bin"; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h index 7fd16b2a0..b12fbabde 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h @@ -42,6 +42,8 @@ namespace OHOS void PreLoad(void) override; void UnLoad(void) override; UILabelExt *GetTimeLabel(); + UILabelExt *GetHeartLabel(); + void UpdataTime(); private: @@ -51,14 +53,14 @@ namespace OHOS UIViewGroup *container_ = nullptr; - UILabelExt *curtimelabel = nullptr; // 当前时间 - UILabelExt *sportlabel = nullptr; // 运动项目名称 - UILabelExt *timerlabel = nullptr; // 计时 - UILabelExt *heartlabel = nullptr; // 运动实时心率 - UILabelExt *strengthlabel = nullptr; // 运动强度 + UILabelExt *curtimelabel = nullptr; // 当前时间 + UILabelExt *sportlabel = nullptr; // 运动项目名称 + UILabelExt *timerlabel = nullptr; // 计时 + UILabelExt *heartlabel = nullptr; // 运动实时心率 + UILabelExt *ubpmlabel = nullptr; // 运动强度 UIImageView *image_progress = nullptr; - UIImageView *image_arrows = nullptr; + UIImageView *image_heart = nullptr; UIImageView *image_lowIntensity = nullptr; // 低等强度 UIImageView *image_mediumIntensity = nullptr; // 中等强度 UIImageView *image_highIntensity = nullptr; // 高等强度 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDetailView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDetailView.h index 97459abaf..34ab3e167 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDetailView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDetailView.h @@ -41,7 +41,7 @@ namespace OHOS void PreLoad(void) override; void UnLoad(void) override; - UILabelExt *GetHeartLabel(); + UILabelExt *GetMileLabel(); UILabelExt *GetStepLabel(); UILabelExt *GetCalorieLabel(); @@ -53,22 +53,17 @@ namespace OHOS UIViewGroup *container_ = nullptr; - UILabelExt *u_heartlabel = nullptr; + UILabelButtonExt *intensity_button{nullptr}; + UILabelExt *u_milelabel = nullptr; UILabelExt *u_stepslabel = nullptr; UILabelExt *u_calorielabel = nullptr; - UILabelExt *heartlabel = nullptr; UILabelExt *milelabel = nullptr; UILabelExt *steplabel = nullptr; UILabelExt *calorielabel = nullptr; - UIImageView *heartimage = nullptr; - UIImageView *mileimage = nullptr; - UIImageView *stepimage = nullptr; - UIImageView *calorieimage = nullptr; - UIImageView *lineimage1_ = nullptr; + UIImageView *progress_image = nullptr; UIImageView *lineimage2_ = nullptr; - UIImageView *lineimage3_ = nullptr; bool viewiInitStatus{false}; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingEndNoteView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingEndNoteView.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingEndView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingEndView.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp index aac7c2179..87be72ba7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp @@ -106,6 +106,7 @@ namespace OHOS } /* --------------------------------- cywee库操作 -------------------------------- */ + /*开启cywee*/ bool TraingCardPresenter::OpenSensor(ExerciseClass type) { // 根据不同的运动项目进行不同的运动 @@ -114,22 +115,22 @@ namespace OHOS switch (type) { case ExerciseClass::NORMAL: - do_cywee_service_check_msg(SPORT_ACTIVE_MODE_NORMAL); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NORMAL_MODE); break; case ExerciseClass::TREADMILL: - do_cywee_service_check_msg(SPORT_ACTIVE_MODE_TREADMILL); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TREADMILL_MODE); break; case ExerciseClass::OUTDOOR: - do_cywee_service_check_msg(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE); break; case ExerciseClass::INDOOR: - do_cywee_service_check_msg(SPORT_ACTIVE_MODE_INDOOR_RUNNING); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE); break; case ExerciseClass::FITNESS_PEDOMETER: - do_cywee_service_check_msg(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE); break; case ExerciseClass::FREE_TRAINING: - do_cywee_service_check_msg(SPORT_ACTIVE_MODE_FREE_TRAINING); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_FREE_TRAINING_MODE); break; default: break; @@ -138,6 +139,7 @@ namespace OHOS return true; } + /*控制cywee*/ bool TraingCardPresenter::ControlSensor(ExerciseState state) { switch (state) @@ -169,23 +171,26 @@ namespace OHOS return; } - double distance_km = sportdata->distance / 1000.0; // 转换为公里 - std::stringstream stream; - stream << std::fixed << std::setprecision(2) << distance_km; - std::string distanceStr = stream.str(); + double distance_km = sportdata->distance / 1000.0; // 转换为公里并保留两位小数 + std::stringstream ss; + ss << std::fixed << std::setprecision(2) << distance_km; + std::string distanceStr = ss.str(); - std::string calorieStr = (sportdata->calories != 0) ? std::to_string(sportdata->calories) : "--"; std::string durationStr = std::to_string(sportdata->duration); std::string stepsStr = (sportdata->steps != 0) ? std::to_string(sportdata->steps) : "--"; + std::string calorieStr = (sportdata->calories != 0) ? std::to_string(sportdata->calories) : "--"; + + TrainingDataView::GetInstance()->GetHeartLabel()->SetText("--"); - TrainingDetailView::GetInstance()->GetHeartLabel()->SetText("0"); TrainingDetailView::GetInstance()->GetCalorieLabel()->SetText(calorieStr.c_str()); TrainingDetailView::GetInstance()->GetMileLabel()->SetText(distanceStr.c_str()); TrainingDetailView::GetInstance()->GetStepLabel()->SetText(stepsStr.c_str()); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ControlSensor--%s %s %s!!", calorieStr.c_str(), distanceStr.c_str(), stepsStr.c_str()); - } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ControlSensor--Calories: %s, Distance: %s, Steps: %s", calorieStr.c_str(), distanceStr.c_str(), stepsStr.c_str()); + // 释放sportdata内存 + } + /*刷新time和data*/ void TraingCardPresenter::Notify(void) { TrainingDataView::GetInstance()->UpdataTime(); @@ -225,7 +230,7 @@ namespace OHOS return true; } } - // 点击结束按键 + // 点击结束按键,弹窗显示 if (strcmp(view.GetViewId(), BUTTONEND) == 0) { ControlSensor(ExerciseState::Pause); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp index c916ea008..233c1dcec 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp @@ -41,23 +41,23 @@ namespace OHOS void TrainingControlView ::InitView() { // 初始化Button - TraingModel::GetInstance()->InitButton(buttonEnd, 100, 202, 100, 100, BUTTONEND); + TraingModel::GetInstance()->InitButton(buttonEnd, 91, 205, 110, 110, BUTTONEND); // Set additional property buttonEnd->SetImageSrc(SPORT_STOP_IMAGE, SPORT_STOP_IMAGE); // 设置按钮的点击事件监听器为 TraingGPSPresenter 的实例 buttonEnd->SetOnClickListener(static_cast(TraingCardPresenter::GetInstance())); Add(buttonEnd); - TraingModel::GetInstance()->InitButton(buttonStop, 255, 202, 100, 100, BUTTONSTOP); + TraingModel::GetInstance()->InitButton(buttonStop, 261, 205, 110, 110, BUTTONSTOP); // Set additional property buttonStop->SetImageSrc(SPORT_PAUSE_IMAGE, SPORT_PAUSE_IMAGE); buttonStop->SetOnClickListener(static_cast(TraingCardPresenter::GetInstance())); Add(buttonStop); // 初始化Lable - TraingModel::GetInstance()->InitLabel(labeltitle, 188, 52, 90, 35, "label1", "训练中", DEFAULT_VECTOR_FONT_FILENAME, 30); - TraingModel::GetInstance()->InitLabel(labeltimer, 98, 110, 60, 35, "label2", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 65); - TraingModel::GetInstance()->InitLabel(labelend, 125, 324, 60, 40, "label3", "结束", DEFAULT_VECTOR_FONT_FILENAME, 20); - TraingModel::GetInstance()->InitLabel(labelstop, 280, 324, 60, 40, "label4", "暂停", DEFAULT_VECTOR_FONT_FILENAME, 20); + TraingModel::GetInstance()->InitLabel(labeltitle, 83, 50, 300, 35, "label1", "训练中", DEFAULT_VECTOR_FONT_FILENAME, 30); + TraingModel::GetInstance()->InitLabel(labeltimer, 78, 110, 290, 80, "label2", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 65); + TraingModel::GetInstance()->InitLabel(labelend, 81, 330, 130, 35, "label3", "结束", DEFAULT_VECTOR_FONT_FILENAME, 30); + TraingModel::GetInstance()->InitLabel(labelstop, 251, 330, 130, 35, "label4", "暂停", DEFAULT_VECTOR_FONT_FILENAME, 30); Add(labeltitle); Add(labeltimer); Add(labelend); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp index b61bf673f..451ced152 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp @@ -40,34 +40,38 @@ namespace OHOS { // 初始化Image TraingModel::GetInstance()->InitImageView(image_progress, 13, 13, 440, 386, "image1", PROGRESS_IMAGE); - TraingModel::GetInstance()->InitImageView(image_arrows, 208, 297, 20, 20, "image2", ARROWS_IMAGE); - TraingModel::GetInstance()->InitImageView(image_lowIntensity, 98, 314, 270, 20, "image3", SPORT_STRENGTH_IMAGE); + TraingModel::GetInstance()->InitImageView(image_heart, 88, 295, 50, 50, "image2", SPORT_HEARTRATE_IMAGE); TraingModel::GetInstance()->InitImageView(image_iconup, 225, 396, 16, 10, "image4", INCO_UP_IMAGE); TraingModel::GetInstance()->InitImageView(image_iconpoint, 193, 421, 80, 20, "image5", DATA_POINT_IMAGE); Add(image_progress); - Add(image_arrows); - Add(image_lowIntensity); + Add(image_heart); Add(image_iconup); Add(image_iconpoint); // 初始化Lable - TraingModel::GetInstance()->InitLabel(curtimelabel, 185, 60, 90, 35, "label1", "23:54", DEFAULT_VECTOR_FONT_FILENAME, 40); - TraingModel::GetInstance()->InitLabel(sportlabel, 158, 120, 150, 35, "label2", "跳绳运动中", DEFAULT_VECTOR_FONT_FILENAME, 30); - TraingModel::GetInstance()->InitLabel(timerlabel, 90, 175, 60, 40, "label3", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 80); - TraingModel::GetInstance()->InitLabel(heartlabel, 150, 276, 60, 40, "label4", "144", DEFAULT_VECTOR_FONT_FILENAME, 23); - TraingModel::GetInstance()->InitLabel(strengthlabel, 167, 350, 60, 40, "label4", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 26); + UIResourceTextId sport_id = TraingModel::GetInstance()->GetSportEvent(); + TraingModel::GetInstance()->InitLabelExt(sportlabel, 83, 120, 300, 35, "label2", sport_id, DEFAULT_VECTOR_FONT_FILENAME, 30); + sportlabel->SetTextColor(Color::Gray()); + + TraingModel::GetInstance()->InitLabel(curtimelabel, 155, 60, 150, 50, "label1", "23:54", DEFAULT_VECTOR_FONT_FILENAME, 40); + + TraingModel::GetInstance()->InitLabel(timerlabel, 40, 163, 400, 140, "label3", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 90); + TraingModel::GetInstance()->InitLabel(heartlabel, 85, 284, 230, 80, "label4", "144", DEFAULT_VECTOR_FONT_FILENAME, 60); + TraingModel::GetInstance()->InitLabel(ubpmlabel, 218, 284, 230, 80, "label5", "bpm", DEFAULT_VECTOR_FONT_FILENAME, 60); + ubpmlabel->SetTextColor(Color::Gray()); Add(curtimelabel); Add(sportlabel); Add(timerlabel); Add(heartlabel); - Add(strengthlabel); + Add(ubpmlabel); +#if 0 // 初始化Button TraingModel::GetInstance()->InitButton(buttonNote, 275, 350, 26, 26, BUTTONNOTE); // Set additional property buttonNote->SetImageSrc(NOTE_IMAGE, NOTE_IMAGE); buttonNote->SetOnClickListener(static_cast(TraingCardPresenter::GetInstance())); Add(buttonNote); - - //增加上拉卡片 +#endif + // 增加上拉卡片 SetCoverable(true); } @@ -94,10 +98,10 @@ namespace OHOS delete heartlabel; heartlabel = nullptr; } - if (strengthlabel != nullptr) + if (ubpmlabel != nullptr) { - delete strengthlabel; - strengthlabel = nullptr; + delete ubpmlabel; + ubpmlabel = nullptr; } // 删除button if (buttonNote != nullptr) @@ -139,6 +143,10 @@ namespace OHOS { return timerlabel; } + UILabelExt *TrainingDataView::GetHeartLabel() + { + return heartlabel; + } /*更新当前时间*/ void TrainingDataView::UpdataTime() { diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDetailView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDetailView.cpp index 08fe4be02..f607d46cc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDetailView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDetailView.cpp @@ -38,38 +38,33 @@ namespace OHOS void TrainingDetailView ::InitView() { // 初始化Image - TraingModel::GetInstance()->InitImageView(heartimage, 134, 58, 30, 30, "image1", HEARTRATE_30_IMAGE); - TraingModel::GetInstance()->InitImageView(mileimage, 44, 189, 30, 30, "image2", MILEAGE_30_IMAGE); - TraingModel::GetInstance()->InitImageView(stepimage, 297, 189, 30, 30, "image3", STEP_30_IMAGE); - TraingModel::GetInstance()->InitImageView(calorieimage, 129, 335, 30, 30, "image4", CALORIES_30_IMAGE); - TraingModel::GetInstance()->InitImageView(lineimage1_, 0, 160, 10, 466, "image5", LINE_1_IMAGE); - TraingModel::GetInstance()->InitImageView(lineimage2_, 233, 193, 80, 20, "image5", LINE_2_IMAGE); - TraingModel::GetInstance()->InitImageView(lineimage3_, 0, 306, 10, 466, "image5", LINE_1_IMAGE); - Add(heartimage); - Add(mileimage); - Add(stepimage); - Add(calorieimage); - Add(lineimage1_); + + TraingModel::GetInstance()->InitImageView(progress_image, 0, 0, 100, 100, "image5", COLOR_PROGRESS_IMAGE); + TraingModel::GetInstance()->InitImageView(lineimage2_, 225, 190, 80, 1, "image", LINE_2_IMAGE); + Add(progress_image); Add(lineimage2_); - Add(lineimage3_); + // 初始化Lable - TraingModel::GetInstance()->InitLabel(u_heartlabel, 174, 60, 90, 35, "label1", "心率(次/分)", DEFAULT_VECTOR_FONT_FILENAME, 26); - TraingModel::GetInstance()->InitLabel(u_milelabel, 80, 190, 60, 40, "label2", "距离(公里)", DEFAULT_VECTOR_FONT_FILENAME, 26); - TraingModel::GetInstance()->InitLabel(u_stepslabel, 332, 189, 60, 40, "label3", "步数", DEFAULT_VECTOR_FONT_FILENAME, 26); - TraingModel::GetInstance()->InitLabel(u_calorielabel, 167, 336, 60, 40, "label4", "卡路里(千卡)", DEFAULT_VECTOR_FONT_FILENAME, 26); - TraingModel::GetInstance()->InitLabel(heartlabel, 202, 94, 60, 40, "label5", "144", DEFAULT_VECTOR_FONT_FILENAME, 40); - TraingModel::GetInstance()->InitLabel(milelabel, 76, 233, 60, 40, "label6", "13.21", DEFAULT_VECTOR_FONT_FILENAME, 40); - TraingModel::GetInstance()->InitLabel(steplabel, 300, 233, 60, 40, "label7", "28312", DEFAULT_VECTOR_FONT_FILENAME, 40); - TraingModel::GetInstance()->InitLabel(calorielabel, 175, 376, 60, 40, "label8", "210.03", DEFAULT_VECTOR_FONT_FILENAME, 40); - Add(u_heartlabel); + TraingModel::GetInstance()->InitLabel(u_milelabel, 16, 234, 220, 35, "label2", "距离(公里)", DEFAULT_VECTOR_FONT_FILENAME, 30); + TraingModel::GetInstance()->InitLabel(u_stepslabel, 73, 362, 320, 35, "label3", "步数", DEFAULT_VECTOR_FONT_FILENAME, 30); + TraingModel::GetInstance()->InitLabel(u_calorielabel, 225, 235, 230, 35, "label4", "卡路里(千卡)", DEFAULT_VECTOR_FONT_FILENAME, 30); + u_milelabel->SetTextColor(Color::Gray()); + u_stepslabel->SetTextColor(Color::Gray()); + u_calorielabel->SetTextColor(Color::Gray()); + + TraingModel::GetInstance()->InitLabel(milelabel, 17, 170, 200, 60, "label6", "13.21", DEFAULT_VECTOR_FONT_FILENAME, 60); + TraingModel::GetInstance()->InitLabel(calorielabel, 230, 170, 200, 60, "label7", "28312", DEFAULT_VECTOR_FONT_FILENAME, 60); + TraingModel::GetInstance()->InitLabel(steplabel, 133, 296, 200, 60, "label8", "210.03", DEFAULT_VECTOR_FONT_FILENAME, 60); Add(u_milelabel); Add(u_stepslabel); Add(u_calorielabel); - Add(heartlabel); Add(milelabel); Add(steplabel); Add(calorielabel); + TraingModel::GetInstance()->InitButtonExt(intensity_button, 103, 70, 260, 80, "button", STR_MEDIUM_STRENGTH, 30); + Add(intensity_button); + SetTouchable(true); // SetIntercept(true); } @@ -77,11 +72,6 @@ namespace OHOS void TrainingDetailView::DeInit() { RemoveAll(); - if (u_heartlabel != nullptr) - { - delete u_heartlabel; - u_heartlabel = nullptr; - } if (u_milelabel != nullptr) { delete u_milelabel; @@ -97,11 +87,6 @@ namespace OHOS delete u_calorielabel; u_calorielabel = nullptr; } - if (heartlabel != nullptr) - { - delete heartlabel; - heartlabel = nullptr; - } if (milelabel != nullptr) { delete milelabel; @@ -118,41 +103,20 @@ namespace OHOS calorielabel = nullptr; } - // 删除Image - if (heartimage != nullptr) - { - delete heartimage; - heartimage = nullptr; - } - if (mileimage != nullptr) - { - delete mileimage; - mileimage = nullptr; - } - if (stepimage != nullptr) - { - delete stepimage; - stepimage = nullptr; - } - if (calorieimage != nullptr) + if (progress_image != nullptr) { - delete calorieimage; - calorieimage = nullptr; - } - if (lineimage1_ != nullptr) - { - delete lineimage1_; - lineimage1_ = nullptr; + delete progress_image; + progress_image = nullptr; } if (lineimage2_ != nullptr) { delete lineimage2_; lineimage2_ = nullptr; } - if (lineimage3_ != nullptr) + if (intensity_button != nullptr) { - delete lineimage3_; - lineimage3_ = nullptr; + delete intensity_button; + intensity_button = nullptr; } } @@ -168,10 +132,6 @@ namespace OHOS void TrainingDetailView::UnLoad(void) {} - UILabelExt *TrainingDetailView::GetHeartLabel() - { - return heartlabel; - } UILabelExt *TrainingDetailView::GetMileLabel() { return milelabel; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingEndNoteView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingEndNoteView.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingEndView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingEndView.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/Color_Progress.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/Color_Progress.bin new file mode 100644 index 0000000000000000000000000000000000000000..da0c82952cfca1c33c55ad6523d07bf430158727 GIT binary patch literal 125688 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 literal 0 HcmV?d00001 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/Sport_continue.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/Sport_continue.bin index dfa9eaf08adaceafb54871cf08d861c5daa5bfbf..29fa070bb7451976928c57b1e7bc499be5962c03 100644 GIT binary patch literal 8536 zcmds6eQZ%MbI(2RTu8u^L|iC*@=eb&Xis8{C!ZA0d8T})0d{}&Z~wXQ zhJy2N{z$BRY(P*p#tdz3%a})4XvcxQYs~WlYpo}qW17Cj$!Ai(#z)P4*NUGz{i}Dk zoNPP2!4;NP4FHe4QmH6r0lYudVZhzM(+vfGZGdYI;AL2pQoSTlk$I1C_{yzGR6Z&Th56$13)#tYLz_pQLk=B!c^islGI~uGMeB?|8 z{bV0M&r^F46fK>kvHfSy=TEzT()DMy$GeXQX(#&$sqqNEY#O3?C{%GvK4SX#NdoM^ zqqM(ZP-S>OcwTXDBJRpZqhq_ynr7R-TG9I@-ar^Wia6klev^M{yd}?%i$$u#ie5>CEonb!StR#Ujr^ zH4K`4|F89uZHFOtJtD+LpW&nYdPK8F!%MF9i)KM&RUcUMTFY7%YVUJpuT<+Frm}2x zd@fnQN0z#Ub%s>E^wYOFFvb?N`iGpBIIqCov3Xlh%C-xHuch2zlV1CDKFO7RdjA~^ zD^gft9-XBAhxff8T4a}c76zLNvtLh1&26G3blqtwCJn3vQgod2KeChw1e{waHtgWM zgmZ=JBZ~Lt--+=@6OCJ_R)@<~pyK&HAzM#p)z1l7I?u#wPN7(|v14c!jC%jF%}auz z2Dn%o>H9;#S`0;I4y&E0>iDvwXUkgVXI&rL=XilA1rUtUJDwFgdxk3DD#XF<=75UF zHy<;O@yH101f^cT#J1VD5^3|3@z@Ig~%mFRl8s7`KM*5>|{?U`6Kj3FTuk-a1rK1tZ>|qu)LBL&|@lnz&IhT~$m< zw(ZZgJU0v2_YwhusK$g`6pwxAY$}C~wc>)}%~b!xw^9D+d~dNTdu=S5=N)`4#wp*e zSpe7D`FS}%uQIh?Ki|ua+FOah6jTduLGx#BIb07JP^KTBF7MIg)AvWA=*NR2NxVX) zasqJB5=d8Gy5p%|vU;oO^s$}t$!))(A~oIl(~YnDQ%$VA`lXAFQ7$A3f)nTSOwTtp ze|-=5iCSXQi3Q8YYsHdodq?wwSOTMx_4x9#udP@~1hjj{c18Lf%(2i;gajYr7kI}0 z=<)MhFeeVhcd7Z=61t-0=d}HkKJKP`IPMJf-nRt(+l$>#m5QO|O@-H} z-7tuG3BCSIc{&fv>_ot!gKeDu(jnkJSAE;6a~taCzVWvW@l56G=TkpG>|CyTBb>vR z2T>PT5L;CJB5xGAsoRN9B-U^L2a%eO{#$+J@f;WB6I71~7+xgO_y3t~NI2J1xpD9Q zZyXx=uEgr?TZoeL0l!{zCvs%<6TSJ(%cb9IAwe0xB8Oo<(>;BcKEBd~2dv#gO@TO!{ zThOuNp4c+wy_GMoTc<+w_v!Sd``*h|i8VyH+(7-9NI&5-UsaTR82s*`O;G5I$pz;i zDh6l$`?|DlT(mR|bp2~74(@yP&b15v5(r*Zqlq46J?947*Y6a%smI-arJ;%bm9GEk zjwgJmJ}tSl|Mi}#OG{4mX!BEmaqhMqR-%I1IW>sLD@i+_X!2&7zdvj9Q+T1fSQ$fK zaqASkGN^qxIuu zTh9%7U8urUxNAqDn3MUKD)`S|f6-eMKv1E*17pxI5WTMVH`}~?`~rN*`>A}o*n7uN z$MV(MhgT%jZp_sFf~J4A;zzGf4h+HPBYe&w7(9F+?fs_7BOg^aC;BHdHF`#v~}`4&J|wn^E)Y86u(*6->a^dwD=XuzZStC+()LKhPZlLW$-M3l+xHU31xTS6Y?GaB{2y6mK(0<&;5y96tQFXQM zCkn(1jhpt7_UlOko+2D5i1h&AZ2+Y;KLrnqY~f2(jr!>Fh0CO*fVP~kVHItkE5qKN zWQ@BTKhSfkg~hxg1z=<*K5K_b4U;KvC9=*Hj5YBtGm&ZdP6FWY2QRgxDv})hp509# z0i3O|1%mrntaH=>o5vgMS7j zw!6?jxOu9bnxK>i+UnTqqX-nwHh!`Xy(W`#gCuMKI&T@``PZdcDP+&_Z$ZxpuMPW8 zw=gj_=tzSIi9GXhldoz=bkG~K0bI0?K!%x8x$wew2E#0wxEiQ_a{#o_iHc%|lmLEt z5%x8svfw2>dX?iLe&&IJGB6xvVqN9}6Dudb24qt0S&#ZK7@KKt6v9ZSZQSse8=aNJ z(``no65!1{=vfkE${|bo&v)$U4fdz0y;^>H`BXXkE))H6FI_)81?mVQAMivx5$){c zZ0!VL%)g|a`Jcbz$OjuXbTU|x>e%2BfMI~Rh3p~oTpm;aeecT4bX2>ZRWap89qXxx zJ6I}9i6k{EGCAZq=sBp_A9<4bQ+KjhUP-PQS`vb;JZVG?FLtPNLk=97i{wnJuv1qt zK% z-oa{r)ekxjG}kfXc;UU=KdF|VDLamS!u+3(TJ+~ZO7<7oU@W~aUQpn^Dm6o6sD-&@ z(&f=nEhr4sf7GdmcTY8(8=?!tsm-s*)KmOFJ2_CTG*h<$b0Vo-Bm#|aTV8QZcTpYm z{dm@MCr2C2tave)rAG%TgAQ(Jt8Q51fs{LD;BLV_7yJ6W(cML2&n<^hsH5{hwo}Py z*mWt#ybx# z6a1%JLE=QZj^uF>Tk{m_BJQ#eaD@SU4e%a>H{nI*FX)XrDW2gt%*9XO^reTJvS(~~ zOXq;rPrnrWZQDTaa#3}5W<

wb~rn9@HR=wP(q5NF=5CE$svsW`QO33G3*lu?J`^ zSG9sj!-#GQzdtlh(rTv*!msOgfPUFYYshFy+%ayTv5E^^5Gt~r0E6mR_~SNMRMJw?VA4*gmus#h2*?rbN5Cu#2jD;WDk?(YW@9pYNkk)V}e;*2#}IF#i(#)#7d@z<2>-=7mFGM oR~et_szQ!uHs7;1 zz4zR6fA^eo&pjVRU@eg%7}xH1PXli~*A=bx@rp81-YsA<(z$ft2nImEmIVnQh*bq06&+noa{qpsVp4^ z(uefhwxPehuwh?hxbYcIKH2A-HLBv*;l{DtdttN3w$ zE5=Mj(4?Er=k%X3T;5p4ORv8g?;KYYTviaLKTtYTAJ~&UjDt# zQ>31)0UlZwmrA+3J_QuT6;Z9&3R zB!>LF^!mr&fR|j})iK)fYD{l|#0r1gEujAA&!)r9#AF8%tU0@^?$QYT{zA==`>j`t9${G#b)C85SgFK?{b z*E4UI1ij||dQ$ZzpP11C%i)gxU~J9;y63Ja8nM-j6NOfg$-lm(TIb zSXc;Ia0vyjMPFzAQ*f5|kJkN-RKNcG;JzNU9!o{pe!S@IupN$Q{J`aNeDplMH{mc? zgw)6)1W=a8`|nk}JbMb^Z7>UnoBMujd)GC--~Yl#-%s&Pt^cUa0hz&-(+$6$>d%i` zcOFbE8+fmeRs3$s&wI6aq`mbca0IeZKA^|rc6rwxKTIhWVLV+95|DS(dToRC?y-WO z`_&?-*_4CPozq)C@Sf2uBn0()J-+n41&&6iFg=p$KgM5OynnRfrPkN!d!>NX`ztFc zKR99NuLo)l1RvKwTzH9$J`4=D2+HT4eHWhqUn>-Ju* zZHY>)tp&`>^IT}GUvJB4D0h6gm-$$6k&7l?S$F9Bi+hGVTzRWn4DG_k<0KEz^+SU? znic?Vjjq8T$**Y^v3OJm~} z-ZNdhc_!iGXezfgIGW6*4PK7*P`=v{xU>-EWRK7n(@!>~drkgl#%0rQ!+(y)biGX1 zYxIkVn8x(a)IVYGO!*1_LKn>h{=)g#2{j<9)skA=%z#<7j*LKqeFN zXKMeQ=J&O{t$DWkfh&WJwEg>wF zM0!9RkA4(Cr}d+4S=#r9=SI0wxS!qlX6>;7UZ&x+^Jy*jgzJVWn$^amY=S-yw@7*f z`ex{>aKVBfottF4y|UUVq2 zbiCi)&|?X7tE|}JqPe`K;7CVqFeg>KlliBMN6xtT(6R>DIQ;HNe7IP#%|#Q?4sPz{ zX^+4Ez++nbWw!B1w%5&VB|zy}fBUl1vsLY_$`VxI+h(>b^U?gc(OmKuID-) z>bx4rR;so(7Dgkkxi?+ZY+QqOn7-@!=l)dvPv-X;^>rs;9y--_Tm$_vy9|~(j z0QJfA>d9ugIq&cMMmUy+O~Ge;Y^*-RqQRL=pXxespMv=~4s9X6RV&&N3RwAaov)-CLbV=(djPw@&xvhzyjkSJc$-meP%q92{@wTI5{bgTtF0rnzP zE%Z-{$BOQ#l@mQoc#wX4C(kABKe~pm?mHF{{CCTr>FQToYM^ye_9|Kw4$%G({FC`V z)pNDs9fT<3%9$%!I4k&qpr5OF_$un+?=My;i=P4Q1WTADwU>6Z&QguiNfVM|Iu1)C!cBGINau((#hr!k(G>KNUaWlam13 z_+yIar=Q{ffSTOx>F;laJpy0vylb%6#`?#B{WR!)AF@B%*-7X1fOEq}L4T+GpRW8w z{x;0n#r%67QTyuXenI9-5Y9L1+v30K{96j_-2Z8|QNG|~YgU%f#P5T#`0kP<7ry@Z p;reXbdh;S%9m%8n8yY{14jTVtP+M9_p4GUmAOMu$bnTmp{$F?Xx)T5Z diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/Sport_stop.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/modules/Sport_stop.bin index 2e1205517f7f7de8a20b23e6f19f2e8e5c6c9f48..7b5a977a582eedf2fb3bf301b4562437d4e6fc00 100644 GIT binary patch literal 8536 zcmds64^UJ09sjg^xVc@rtrc%;3F6MuQaI7xycL^7oT#(&g_J2Z@Y^qm?{Q1d%g7&G z`#9jf_xpYSeSY8X@B4k<2Nb{-{DXMHEggo1z&^fl6nKI(LebKsXoL@tys`@arFj6x z_AK#fsj#WKvQwLhl^6{6>rb5mxxFIwMT_NW;;eGH$N8b?ZR z-sv}M_c(dJU~_A#>KSp@5dxv+(LB`$Ij#nBfl~F278n9J_ul>yrvh*PLjsWaU$pke zo1dCJng(4*5_Huc&8>YL<0I0j?SE1Td6k;i`~NonJgXm}EnC*CnLLkJ(b)y181HLn z@748!3X9fKtX!>j3^Cp32%p3UiT52pjL%$ptB;>iSo26*o)nC#Uima2$ja3KEiN6r3JjN@nJDJg&w=d^L-{Q4Q`!lu_M zHO~HiuPB`T_j^4QKkBSntP;B3ZNBV0HZwPw$J)mN94)OEiPU|jlD{?sy1l5A;pE3E zpIG~*OP)dXM6YqZAo*%bg88RNYcX`ZY|hHZ7j0oGEq6>k{;2oYt6eGTe4?31qh|nw zoR4L?{foCgL-)iFNqJqqE=5EuNV$#G_rJ!Q-qWeb)eQBlQzAyDWeApky3T*P^%-q~ z-T_kBlv%0S-9Mandk^!L7<6d@x>e|HgnZ1T@(20d-~~l zZW)cxIJ^I=idU$A`W`*Le}vXFQitnnl7n6M@KZp^Bg@j%#1}V-&pXd+J63M zB44VhkzBTN@`Bc5yx#OGau@%e4@xZ~>14=g^({_H9JPEKH^EmlZ4WZ&bE@Ei8-1)D zN0v>kY3Sx1qu<|&LlXq{mujpCsnX@5@dug$V$@7a)H3*ec0 z=#yZ6039kn)-+W>`0L-??LC68(>L!}DZ+{R2lpHd=tpSU`zsE=Uj*|t58rPM=qG5N zYEjD@jg5Qaop0gr4Z+81B)U-dVC_Mu{APLI2`^U9P*q zGhZXDuT%AJ&8&rO!&TcITiaWzXo!+a`>~CdS6WxHob%KTfuZ|!|{h(50`IKt#2G&;p(d{ zSYN~07jE6qrcT+hx^)Ei3^F+$VD_cltTUuzcV1t%^^9(x^EVhAIRXa3 z7>7TL7wZp8=VY%{=dKwN@moRW*ysJqzi$C!2`#@ zLmCTy7Mwr(60~RbP0IVS;unY~SKw_6z#mU1QJI_%ul(_3K5<0OzZ4FiaO-)ty?lDU zRZKt{JO_=zc`K{W8T;=&tUd8M55u;qO#4#OQAA2#)=zYD?=$y`AJ(2o*Nv*xH@^Q6 zj^8AFzpY}1S$XmDFIxH84Zq9mGp&Qn>%#mhvjxxV8_Zb?u=lCfU2=dTR(_;-gyVmp z?U#6Lb((U^@b_3eaTq8vs5@GU3Ab3FlX$u>v;6l9zq4CQj=T7xrn>5nh*GoJa@PLN z73Z->@Q4AF7?TUEeeuF)s`B-Q-)812TrwpYxqA#gvuL>qnnW{b@J z`IBtN3#(>5iTg?X{TzS)>?q`c+%)hH?-;2%fzNYCV8TuVIHqd<{oYTMd{FaB4p{|( z17^U`^R4>Cjilu2LhXBY9W`c9K92oYedheIJ>B%`H8c1AFW1ycE_uh^%q>;t_9f0s fpVfZy;b)&MqqeQ6my)Kp<^L}8Pq^*V?caX@gft+; literal 6824 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 literal 0 HcmV?d00001 -- 2.17.1