From 064c093c1dd58a85990b45991ea9948fe4367dfa Mon Sep 17 00:00:00 2001 From: Caisking Date: Tue, 22 Apr 2025 15:42:39 +0800 Subject: [PATCH] =?utf8?q?=E3=80=90=E5=BF=83=E7=8E=87=E5=8D=A1=E7=89=87?= =?utf8?q?=E3=80=91UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../heartrate/include/HeartChartView.h | 4 +- .../nativeui/heartrate/src/HeartChartView.cpp | 217 ++++++++++-------- .../heartrate/src/HeartRateCardView.cpp | 2 +- .../nativeui/main/src/MainViewSample.cpp | 2 + 4 files changed, 125 insertions(+), 100 deletions(-) diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/include/HeartChartView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/include/HeartChartView.h index 06db4bd0c..b9b2d27bb 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/include/HeartChartView.h +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/include/HeartChartView.h @@ -65,7 +65,7 @@ public: void CleanAllDataView(); void UpdateChartConfig(); void SetLastHeart(); - UIViewGroup *GetchartGroup(); + UIScrollView *GetchartGroup(); private: UIImageView *maxRateIconView_{nullptr}; @@ -90,6 +90,8 @@ private: UILabelExt *maxheart_dynamic_2_{nullptr}; UILabelExt *maxheart_dynamic_1_{nullptr}; UILabelExt *minheart_dynamic_{nullptr}; + + UIScrollView *scrollView{nullptr}; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartChartView.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartChartView.cpp index aabb4cea9..b56dc73bf 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartChartView.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartChartView.cpp @@ -161,82 +161,87 @@ HeartChartView::HeartChartView() { } HeartChartView::~HeartChartView() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartChartView::~HeartChartView"); - - if (displayheart_) { - delete displayheart_; - displayheart_ = nullptr; - } - if (maxheart_) { - delete maxheart_; - maxheart_ = nullptr; - } - if (minheart_) { - delete minheart_; - minheart_ = nullptr; - } - if (uheart_) { - delete uheart_; - uheart_ = nullptr; - } - if (lastheart_) { - delete lastheart_; - lastheart_ = nullptr; - } - if (maxheart_dynamic_) { - delete maxheart_dynamic_; - maxheart_dynamic_ = nullptr; - } - if (maxheart_dynamic_3_) { - delete maxheart_dynamic_3_; - maxheart_dynamic_3_ = nullptr; - } - if (maxheart_dynamic_2_) { - delete maxheart_dynamic_2_; - maxheart_dynamic_2_ = nullptr; - } - if (maxheart_dynamic_1_) { - delete maxheart_dynamic_1_; - maxheart_dynamic_1_ = nullptr; - } - if (minheart_dynamic_) { - delete minheart_dynamic_; - minheart_dynamic_ = nullptr; - } - - if (maxRateIconView_) { - delete maxRateIconView_; - maxRateIconView_ = nullptr; - } - if (minRateIconView_) { - delete minRateIconView_; - minRateIconView_ = nullptr; - } - if (chartBackgroundView_) { - delete chartBackgroundView_; - chartBackgroundView_ = nullptr; + if (scrollView) { + scrollView->RemoveAll(); + + if (displayheart_) { + delete displayheart_; + displayheart_ = nullptr; + } + if (maxheart_) { + delete maxheart_; + maxheart_ = nullptr; + } + if (minheart_) { + delete minheart_; + minheart_ = nullptr; + } + if (uheart_) { + delete uheart_; + uheart_ = nullptr; + } + if (lastheart_) { + delete lastheart_; + lastheart_ = nullptr; + } + if (maxheart_dynamic_) { + delete maxheart_dynamic_; + maxheart_dynamic_ = nullptr; + } + if (maxheart_dynamic_3_) { + delete maxheart_dynamic_3_; + maxheart_dynamic_3_ = nullptr; + } + if (maxheart_dynamic_2_) { + delete maxheart_dynamic_2_; + maxheart_dynamic_2_ = nullptr; + } + if (maxheart_dynamic_1_) { + delete maxheart_dynamic_1_; + maxheart_dynamic_1_ = nullptr; + } + if (minheart_dynamic_) { + delete minheart_dynamic_; + minheart_dynamic_ = nullptr; + } + + if (maxRateIconView_) { + delete maxRateIconView_; + maxRateIconView_ = nullptr; + } + if (minRateIconView_) { + delete minRateIconView_; + minRateIconView_ = nullptr; + } + if (chartBackgroundView_) { + delete chartBackgroundView_; + chartBackgroundView_ = nullptr; + } + if (heartIconView_) { + delete heartIconView_; + heartIconView_ = nullptr; + } + + if (imageAnimator) { + imageAnimator->Stop(); + delete imageAnimator; + imageAnimator = nullptr; + } + + if (heartSerial) { + heartchart->ClearDataSerial(); + delete heartSerial; + heartSerial = nullptr; + } + + if (heartchart) { + delete heartchart; + heartchart = nullptr; + } + + delete scrollView; + scrollView = nullptr; } - if (heartIconView_) { - delete heartIconView_; - heartIconView_ = nullptr; - } - - if (imageAnimator) { - imageAnimator->Stop(); - delete imageAnimator; - imageAnimator = nullptr; - } - - if (heartSerial) { - heartchart->ClearDataSerial(); - delete heartSerial; - heartSerial = nullptr; - } - - if (heartchart) { - delete heartchart; - heartchart = nullptr; - } - g_pHeartCheckView = nullptr; } HeartChartView *HeartChartView::GetInstance(void) { return g_pHeartCheckView; } @@ -265,7 +270,7 @@ void HeartChartView::Update_data_Chart(int serialIndex) { serialIndex); return; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始更新曲线"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "开始更新曲线"); /*清除原数据*/ heartSerial->ClearData(); @@ -274,7 +279,8 @@ void HeartChartView::Update_data_Chart(int serialIndex) { heartdata[serialIndex].x = serialIndex; heartdata[serialIndex].y = HealthService::GetInstance()->GetHourlyHeartRate(serialIndex); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"x:%d,y:%d\n", heartdata[serialIndex].x,heartdata[serialIndex].y); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "x:%d,y:%d\n", + heartdata[serialIndex].x, heartdata[serialIndex].y); } /*重新添加*/ heartSerial->AddPoints(heartdata, 24); @@ -295,7 +301,7 @@ void HeartChartView::Update_data_Chart(int serialIndex) { //更新最大最小值 SetDataTopAndBottom(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"更新更新曲线完成"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "更新更新曲线完成"); } void HeartChartView::CleanAllDataView() { if (heartchart == nullptr || maxheart_ == nullptr || minheart_ == nullptr) { @@ -383,7 +389,7 @@ void HeartChartView::HeartImageAnimator() { imageAnimator->SetImageAnimatorSrc(g_heartImageInfo, HEARTBEAT_IMAGE_NUM, HEARTBEAT_DELAY); imageAnimator->SetRepeat(true); - AddViewToRootContainer(imageAnimator); + scrollView->Add(imageAnimator); // imageAnimator->Start(); } /*初始化心率曲线*/ @@ -409,7 +415,7 @@ void HeartChartView::InitChartView(void) { heartchart->SetGradientOpacity(78, 64); // Add to rootView - AddViewToRootContainer(heartchart); + scrollView->Add(heartchart); } //初始化label @@ -468,16 +474,16 @@ void HeartChartView::InitChartLabel() { minheart_dynamic_->SetTextColor( Color::GetColorFromRGBA(0x33, 0x33, 0x33, 0xff)); - AddViewToRootContainer(displayheart_); - AddViewToRootContainer(uheart_); - AddViewToRootContainer(lastheart_); - AddViewToRootContainer(minheart_); - AddViewToRootContainer(maxheart_); - AddViewToRootContainer(maxheart_dynamic_); - AddViewToRootContainer(maxheart_dynamic_3_); - AddViewToRootContainer(maxheart_dynamic_2_); - AddViewToRootContainer(maxheart_dynamic_1_); - AddViewToRootContainer(minheart_dynamic_); + scrollView->Add(displayheart_); + scrollView->Add(uheart_); + scrollView->Add(lastheart_); + scrollView->Add(minheart_); + scrollView->Add(maxheart_); + scrollView->Add(maxheart_dynamic_); + scrollView->Add(maxheart_dynamic_3_); + scrollView->Add(maxheart_dynamic_2_); + scrollView->Add(maxheart_dynamic_1_); + scrollView->Add(minheart_dynamic_); } void HeartChartView::InitChartImageView() { @@ -505,9 +511,9 @@ void HeartChartView::InitChartImageView() { chartBackgroundView_->SetViewId("chartBackground"); chartBackgroundView_->SetSrc(BACKGROUND_IMAGE_PATH); - AddViewToRootContainer(chartBackgroundView_); - AddViewToRootContainer(minRateIconView_); - AddViewToRootContainer(maxRateIconView_); + scrollView->Add(chartBackgroundView_); + scrollView->Add(minRateIconView_); + scrollView->Add(maxRateIconView_); if (heartIconView_ == nullptr) { heartIconView_ = new UIImageView(); @@ -517,7 +523,7 @@ void HeartChartView::InitChartImageView() { heartIconView_->SetViewId("heartIcon"); heartIconView_->SetSrc(HEART_ICON_PATH); - AddViewToRootContainer(heartIconView_); + scrollView->Add(heartIconView_); heartIconView_->SetVisible(true); #if 0 if (lineView_ == nullptr) { @@ -529,7 +535,7 @@ void HeartChartView::InitChartImageView() { lineView_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff666666); lineView_->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - AddViewToRootContainer(lineView_); + scrollView->Add(lineView_); lineView_->SetVisible(true); #endif } @@ -583,6 +589,20 @@ void HeartChartView::HeartbeatImageAnimatorStop() { /*初始化检测界面*/ bool HeartChartView::HeartViewInit() { + if (scrollView == nullptr) { + if (scrollView == nullptr) { + scrollView = new UIScrollView(); + if (scrollView == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView new fail"); + return false; + } + } + } + scrollView->SetPosition(0, 0, 466, 466); + // scrollView->SetScrollBlankSize(50); + // scrollView->SetReboundSize(35); + // scrollView->SetDirection(UIScrollView::VERTICAL); + //图片 InitChartImageView(); //标签 @@ -591,7 +611,7 @@ bool HeartChartView::HeartViewInit() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartChartViewInit is ok"); return true; } -UIViewGroup *HeartChartView::GetchartGroup() { +UIScrollView *HeartChartView::GetchartGroup() { if (!HeartViewInit()) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, @@ -605,13 +625,12 @@ UIViewGroup *HeartChartView::GetchartGroup() { SetDataTopAndBottom(); HeartbeatImageAnimatorStart(); - return GetRootContainer(); + return scrollView; } void HeartChartView::OnStart() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartChartView::OnStart"); View::OnStart(); - if (!HeartViewInit()) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartChartView::InitHeartView fail"); @@ -629,6 +648,8 @@ void HeartChartView::OnStart() { RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::HeartChartPresenter::GetInstance(); RootView::GetInstance()->SetOnKeyActListener(keyactListener); + + AddViewToRootContainer(scrollView); } } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartRateCardView.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartRateCardView.cpp index 1c938c0c1..751cc605e 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartRateCardView.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/heartrate/src/HeartRateCardView.cpp @@ -36,7 +36,7 @@ bool HeartRateCardView::InitView(void) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartRateCardView::InitView"); heartRateCardView = new HeartChartView(); if (heartRateCardView == nullptr) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartChartView::new HeartChartView fail!"); return false; } diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainViewSample.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainViewSample.cpp index c6bc0ef12..44592f828 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainViewSample.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainViewSample.cpp @@ -274,12 +274,14 @@ namespace OHOS uint8_t cardSettingNum = presenter_->GetCardSettingCount(); CardId *cardSettings = presenter_->GetCardSettings(); uint8_t cardMapNumber = sizeof(CardMapper) / sizeof(CardMapper[0]); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettingNum = %d", cardSettingNum); for (int16_t i = 0; i < cardSettingNum; i++) { for (uint8_t j = 0; j < cardMapNumber; j++) { if (cardSettings[i] == CardMapper[j].id) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainViewSample:: recordCard[%d]:%p", j, recordCard[j]); recordCard[j] = (this->*(CardMapper[j].func))(); if (recordCard[j] == nullptr) { -- 2.17.1