From f82ffd2cb7630ef6be1215a034b8fbb60bb644e9 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Wed, 21 Aug 2024 10:50:34 +0800 Subject: [PATCH] =?utf8?q?=E5=90=8C=E6=AD=A5=E8=AE=AD=E7=BB=83=E7=BB=93?= =?utf8?q?=E6=9E=9CUI=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../include/ui_resource_string.h | 6 +- .../nativeui/heartrate/src/HeartChartView.cpp | 4 +- .../nativeui/heartrate/src/HeartRateView.cpp | 23 --- .../nativeui/traing/src/TraingEnddataView.cpp | 170 ++++++++++++------ 4 files changed, 124 insertions(+), 79 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h index 974f2c6e6..3207362fb 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h @@ -540,16 +540,16 @@ enum UIResourceTextId : uint16_t { STR_30_MIN = 527, STR_SET_COUNT_DOWN_NOTE = 528, STR_COUNTDOWN_ENDS = 529, - STR_MAXIMUM_TIME_REACH = 530, + STR_MAXIMUM_TIME_REACH_NOTE = 530, STR_STOPWATCH_STOP_NOTE = 531, STR_TMCHBR = 532, - STR_MAXIMUM_TIME_REACH_NOTE = 533, + STR_MAXIMUM_TIME_REACH = 533, STR_MAX_ID = 534, }; // UIResourceTextId enum FontLanguageId : uint8_t { - LANGUAGE_ID_EN, LANGUAGE_ID_ZH, + LANGUAGE_ID_EN, LANGUAGE_ID_MAX }; // UITextLanguageTextId } diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp index e2623c8d1..6bbe95e55 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp @@ -120,10 +120,12 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Update_data_Chart fail %d", serialIndex); return; } - + + /*设置单个项*/ heartdata[serialIndex].x = serialIndex; heartdata[serialIndex].y = HealthService::GetInstance()->GetHourlyHeartRate(serialIndex); + /*重新添加*/ heartSerial->AddPoints(heartdata, 24); heartSerial->SetLineColor(Color::Red()); heartSerial->SetFillColor(Color::Red()); diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartRateView.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartRateView.cpp index 258c3a6bb..c87e5f9ae 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartRateView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartRateView.cpp @@ -428,28 +428,6 @@ namespace OHOS } void HeartRateView::Update_data_Chart(int serialIndex) { -#if HEART_DATA_TEST - Point tmp[NUM_2]; - if (chart == nullptr || index >= HEART_AVE_NUM || serialIndex >= HEART_AVE_NUM) - { - return; - } - heartSerial[serialIndex] = new UIChartDataSerial(); - heartdata[serialIndex].x = serialIndex; - heartdata[serialIndex].y = HealthService::GetInstance()->GetHourlyHeartRate(serialIndex); - - tmp[0].x = tmp[1].x = heartdata[serialIndex].x; - tmp[0].y = tmp[1].y = heartdata[serialIndex].y; - - heartSerial[serialIndex]->SetMaxDataCount(HEART_AVE_NUM); // 设置最大显示的像素点 - heartSerial[serialIndex]->AddPoints(tmp, NUM_2); - heartSerial[serialIndex]->SetLineColor(Color::Red()); - heartSerial[serialIndex]->SetFillColor(Color::Red()); - heartSerial[serialIndex]->EnableGradient(true); - - heartchart->AddDataSerial(heartSerial[serialIndex]); - heartchart->Invalidate(); -#else if (heartchart == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Update_data_Chart fail %d", serialIndex); @@ -469,7 +447,6 @@ namespace OHOS heartchart->AddDataSerial(heartSerial); heartchart->Invalidate(); -#endif } void HeartRateView::InsertTopAndBottomRateImage(void) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp index f8962bed0..bba4ab8e1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp @@ -18,6 +18,7 @@ #define PRINT_LINE_INFO() WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File: %s, Line: %d\r\n", __FILE__, __LINE__) #define PRINT_FUNCTION_LINE() WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Function: %s, Line: %d\r\n", __FUNCTION__, __LINE__) +#define UI_UPDATA 0 namespace OHOS { @@ -42,7 +43,10 @@ namespace OHOS TraingEnddataView::~TraingEnddataView() { - DeInit(); + // DeInit(); + UIViewGroup *tmpGroup = dynamic_cast(container_); + UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup); + g_pTraingEnddataView = nullptr; } @@ -62,16 +66,18 @@ namespace OHOS InitImageView(imageLine3, 97, baseY + lineHeight, 80, 20, "image3", LINE_IMAGE); // imageLine3 InitImageView(imageLine4, 97, baseY + 2 * lineHeight, 80, 20, "image4", LINE_IMAGE); // imageLine4 InitImageView(imageLine5, 97, baseY + 3 * lineHeight, 80, 20, "image5", LINE_IMAGE); // imageLine5 - InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image6", LINE_IMAGE); // imageLine6 - InitImageView(imageLine7, 97, baseY + 5 * lineHeight, 80, 20, "image7", LINE_IMAGE); // imageLine7 - scrollView_->Add(imageLine2); scrollView_->Add(imageLine3); scrollView_->Add(imageLine4); scrollView_->Add(imageLine5); + scrollView_->Add(imageIcon); + +#if UI_UPDATA + InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image6", LINE_IMAGE); // imageLine6 + InitImageView(imageLine7, 97, baseY + 5 * lineHeight, 80, 20, "image7", LINE_IMAGE); // imageLine7 scrollView_->Add(imageLine6); scrollView_->Add(imageLine7); - scrollView_->Add(imageIcon); +#endif } void TraingEnddataView ::InitializeLabels(void) { @@ -83,50 +89,55 @@ namespace OHOS // 初始化单位Label InitLabelExt(labelutag, 146, startY_Unit + labelInterval * 0, 240, 40, "label8", STR_GOAL_ACCOMPLISHMENT_DEGREE, DEFAULT_VECTOR_FONT_FILENAME, 30); InitLabelExt(labelutime, 146, startY_Unit + labelInterval * 1, 240, 40, "label9", STR_TRAINING_DURATION, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitLabelExt(labelumile, 146, startY_Unit + labelInterval * 2, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitLabelExt(labeluheart, 146, startY_Unit + labelInterval * 3, 240, 40, "label11", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitLabelExt(labelusteps, 146, startY_Unit + labelInterval * 4, 240, 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitLabelExt(labelustrong, 146, startY_Unit + labelInterval * 5, 240, 40, "label2", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabelExt(labeluheart, 146, startY_Unit + labelInterval * 2, 240, 40, "label11", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabelExt(labelustrong, 146, startY_Unit + labelInterval * 3, 240, 40, "label2", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME, 30); // 设置文本颜色 labelduration->SetTextColor(textColor); labelutag->SetTextColor(textColor); labelutime->SetTextColor(textColor); - labelumile->SetTextColor(textColor); labeluheart->SetTextColor(textColor); - labelusteps->SetTextColor(textColor); labelustrong->SetTextColor(textColor); // 初始化值 InitLabel(labeltag, 146, startY_Value + 0 * labelInterval, 240, 60, "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); labeltag->SetTextColor(Color::Green()); InitLabel(labeltime, 146, startY_Value + 1 * labelInterval, 240, 60, "label14", "05:45:46", DEFAULT_VECTOR_FONT_FILENAME, 40); - labeltime->SetTextColor(Color::Orange()); - InitLabel(labelmile, 146, startY_Value + 2 * labelInterval, 240, 60, "label15", "8,301", DEFAULT_VECTOR_FONT_FILENAME, 40); - labelmile->SetTextColor(Color::Blue()); - InitLabel(labelheart, 146, startY_Value + 3 * labelInterval, 240, 60, "label16", "144", DEFAULT_VECTOR_FONT_FILENAME, 40); + labeltime->SetTextColor(Color::Red()); + InitLabel(labelheart, 146, startY_Value + 2 * labelInterval, 240, 60, "label16", "144", DEFAULT_VECTOR_FONT_FILENAME, 40); labelheart->SetTextColor(Color::Yellow()); - InitLabel(labelsteps, 146, startY_Value + 4 * labelInterval, 240, 60, "label16", "5000", DEFAULT_VECTOR_FONT_FILENAME, 40); - labelsteps->SetTextColor(Color::Green()); - InitLabel(labelstrong, 146, startY_Value + 5 * labelInterval, 240, 60, "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30); - labelstrong->SetTextColor(Color::Orange()); + InitLabel(labelstrong, 146, startY_Value + 3 * labelInterval, 240, 60, "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30); + labelstrong->SetTextColor(Color::Red()); scrollView_->Add(labeltype); scrollView_->Add(labelsport); scrollView_->Add(labeltime); scrollView_->Add(labelutag); scrollView_->Add(labelutime); - scrollView_->Add(labelumile); scrollView_->Add(labeluheart); scrollView_->Add(labelustrong); - scrollView_->Add(labelusteps); scrollView_->Add(labeltag); scrollView_->Add(labelduration); - scrollView_->Add(labelmile); scrollView_->Add(labelheart); scrollView_->Add(labelstrong); + +#if UI_UPDATA + InitLabelExt(labelumile, 146, startY_Unit + labelInterval * 2, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabelExt(labelusteps, 146, startY_Unit + labelInterval * 4, 240, 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30); + labelumile->SetTextColor(textColor); + labelusteps->SetTextColor(textColor); + + InitLabel(labelmile, 146, startY_Value + 2 * labelInterval, 240, 60, "label15", "8,301", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelmile->SetTextColor(Color::Blue()); + InitLabel(labelsteps, 146, startY_Value + 4 * labelInterval, 240, 60, "label16", "5000", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelsteps->SetTextColor(Color::Green()); + + scrollView_->Add(labelumile); + scrollView_->Add(labelusteps); + scrollView_->Add(labelmile); scrollView_->Add(labelsteps); +#endif } /* InitView:初始化界面*/ void TraingEnddataView ::InitView() @@ -158,7 +169,7 @@ namespace OHOS { if (!TraingModel::GetInstance()->GetIsSpecial()) return; - +#if UI_UPDATA /*线条*/ InitImageView(imageLine8, 97, baseY + 6 * lineHeight, 80, 20, "image8", LINE_IMAGE); // imageLine8 InitImageView(imageLine9, 97, baseY + 7 * lineHeight, 80, 20, "image9", LINE_IMAGE); // imageLine9 @@ -186,6 +197,22 @@ namespace OHOS scrollView_->Add(labelavpace); scrollView_->Add(labelfreq); scrollView_->Add(labelstride); +#else + InitLabelExt(labelumile, 146, startY_Unit + labelInterval * 2, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabelExt(labelusteps, 146, startY_Unit + labelInterval * 4, 240, 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30); + labelumile->SetTextColor(textColor); + labelusteps->SetTextColor(textColor); + + InitLabel(labelsteps, 146, startY_Value + 4 * labelInterval, 240, 60, "label16", "5000", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelsteps->SetTextColor(Color::Green()); + InitLabel(labelmile, 146, startY_Value + 5 * labelInterval, 240, 60, "label15", "8,301", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelmile->SetTextColor(Color::Blue()); + + scrollView_->Add(labelumile); + scrollView_->Add(labelusteps); + scrollView_->Add(labelmile); + scrollView_->Add(labelsteps); +#endif } // 配置退出相关位置 void TraingEnddataView::ExitView() @@ -193,13 +220,13 @@ namespace OHOS if (TraingModel::GetInstance()->GetIsSpecial()) { // 初始化退出(最后 要根据前方配置设置位置) - InitLabelExt(exitLabel, 80, 1404, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitButtonExt(exitButton, 42, 1484, 380, 100, BUTTONBACK, STR_CLOSE, 30); + InitLabelExt(exitLabel, 80, 1033, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitButtonExt(exitButton, 42, 1083, 380, 100, BUTTONBACK, STR_CLOSE, 30); } else { - InitLabelExt(exitLabel, 80, 1024, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitButtonExt(exitButton, 42, 1111, 380, 100, BUTTONBACK, STR_CLOSE, 30); + InitLabelExt(exitLabel, 80, 773, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitButtonExt(exitButton, 42, 823, 380, 100, BUTTONBACK, STR_CLOSE, 30); } exitLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f)); scrollView_->Add(exitLabel); @@ -311,7 +338,10 @@ namespace OHOS if (!imageStr.empty()) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "imageIcon %s\r\n", imageStr.c_str()); - imageIcon->SetSrc(imageStr.c_str()); + if (imageIcon) // 检查 imageIcon 是否为空 + { + imageIcon->SetSrc(imageStr.c_str()); + } } else { @@ -320,26 +350,38 @@ namespace OHOS // 训练类 UIResourceTextId typeId = TraingModel::GetInstance()->GetSportTypeId(enddata->sportType); - labeltype->SetTextId(typeId); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport Type ID set: %d\r\n", typeId); // 打印运动类型ID + if (labeltype) // 检查 labeltype 是否为空 + { + labeltype->SetTextId(typeId); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport Type ID set: %d\r\n", typeId); // 打印运动类型ID + } // 运动项目 - labelsport->SetTextId(enddata->sportId); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport ID set: %d\r\n", enddata->sportId); // 打印运动项目ID + if (labelsport) // 检查 labelsport 是否为空 + { + labelsport->SetTextId(enddata->sportId); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport ID set: %d\r\n", enddata->sportId); // 打印运动项目ID + } // 运动开始结束时间 std::string startTimeStr = enddata->start_time; std::string endTimeStr = enddata->end_time; std::string durationStr = startTimeStr + "-" + endTimeStr; - labelduration->SetText(durationStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration set: %s\r\n", durationStr.c_str()); // 打印运动时间段 + if (labelduration) // 检查 labelduration 是否为空 + { + labelduration->SetText(durationStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration set: %s\r\n", durationStr.c_str()); // 打印运动时间段 + } // 运动目标 if (enddata->goaldegree) { std::string tagStr = std::to_string(enddata->goaldegree) + "%"; - labeltag->SetText(tagStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Goal degree set: %s\r\n", tagStr.c_str()); // 打印运动目标 + if (labeltag) // 检查 labeltag 是否为空 + { + labeltag->SetText(tagStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Goal degree set: %s\r\n", tagStr.c_str()); // 打印运动目标 + } } else { @@ -349,45 +391,69 @@ namespace OHOS // 运动时长 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration of the sport: %d\r\n", enddata->duration); std::string timeStr = TraingModel::GetInstance()->GetTrainingTime(); - labeltime->SetText(timeStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training time set: %s\r\n", timeStr.c_str()); // 打印训练时间 + if (labeltime) // 检查 labeltime 是否为空 + { + labeltime->SetText(timeStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training time set: %s\r\n", timeStr.c_str()); // 打印训练时间 + } // 运动距离 std::string mileStr = std::to_string(enddata->distance); - labelmile->SetText(mileStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Distance set: %s\r\n", mileStr.c_str()); // 打印运动距离 + if (labelmile) // 检查 labelmile 是否为空 + { + labelmile->SetText(mileStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Distance set: %s\r\n", mileStr.c_str()); // 打印运动距离 + } // 平均心率 std::string heartStr = std::to_string(enddata->avgheart); - labelheart->SetText(heartStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average heart rate set: %s\r\n", heartStr.c_str()); // 打印平均心率 + if (labelheart) // 检查 labelheart 是否为空 + { + labelheart->SetText(heartStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average heart rate set: %s\r\n", heartStr.c_str()); // 打印平均心率 + } // 步数 std::string stepStr = std::to_string(enddata->steps); - labelsteps->SetText(stepStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Steps set: %s\r\n", stepStr.c_str()); // 打印步数 + if (labelsteps) // 检查 labelsteps 是否为空 + { + labelsteps->SetText(stepStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Steps set: %s\r\n", stepStr.c_str()); // 打印步数 + } // 训练强度 UIResourceTextId intensityid = TraingModel::GetInstance()->GetIntensity(); - labelstrong->SetTextId(intensityid); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Intensity ID set: %d\r\n", intensityid); // 打印训练强度ID + if (labelstrong) // 检查 labelstrong 是否为空 + { + labelstrong->SetTextId(intensityid); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Intensity ID set: %d\r\n", intensityid); // 打印训练强度ID + } if (TraingModel::GetInstance()->GetIsSpecial()) { // 平均配速 std::string avpaceStr = std::to_string(enddata->apc); - labelavpace->SetText(avpaceStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average pace set: %s\r\n", avpaceStr.c_str()); // 打印平均配速 + if (labelavpace) // 检查 labelavpace 是否为空 + { + labelavpace->SetText(avpaceStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average pace set: %s\r\n", avpaceStr.c_str()); // 打印平均配速 + } // 步频 std::string freqStr = std::to_string(enddata->cdc); - labelfreq->SetText(freqStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Cadence set: %s\r\n", freqStr.c_str()); // 打印步频 + if (labelfreq) // 检查 labelfreq 是否为空 + { + labelfreq->SetText(freqStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Cadence set: %s\r\n", freqStr.c_str()); // 打印步频 + } // 步幅 std::string strideStr = std::to_string(enddata->std); - labelstride->SetText(strideStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n", strideStr.c_str()); // 打印步幅 + if (labelstride) // 检查 labelstride 是否为空 + { + labelstride->SetText(strideStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n", strideStr.c_str()); // 打印步幅 + } } WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingEnddataView data initialization complete.\r\n"); -- 2.17.1