From: Caisking <3449750381@qq.com> Date: Wed, 9 Oct 2024 09:38:07 +0000 (+0800) Subject: 训练:修改运动目标达标的动画 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=88fc7c126bc360116b852dc462b659dc3c07f380;p=mirrors%2FFD230.git 训练:修改运动目标达标的动画 --- diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h index 2c3c71025..c8c740ac2 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h @@ -314,6 +314,41 @@ namespace OHOS static constexpr const char *PNG_VOICE_ASSISTANT_IMAGE_27 = APP_RES_PATH "/assistant/assistant_gif/assistant_28.bin"; static constexpr const char *PNG_VOICE_ASSISTANT_IMAGE_28 = APP_RES_PATH "/assistant/assistant_gif/assistant_29.bin"; static constexpr const char *PNG_VOICE_ASSISTANT_IMAGE_29 = APP_RES_PATH "/assistant/assistant_gif/assistant_30.bin"; + /*运动目标达成*/ + static constexpr const char *PNG_TRAINING_WIN_IMAGE_01 = APP_RES_PATH "/Training/training_GIF/win_gif/win_01.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_02 = APP_RES_PATH "/Training/training_GIF/win_gif/win_02.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_03 = APP_RES_PATH "/Training/training_GIF/win_gif/win_03.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_04 = APP_RES_PATH "/Training/training_GIF/win_gif/win_04.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_05 = APP_RES_PATH "/Training/training_GIF/win_gif/win_05.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_06 = APP_RES_PATH "/Training/training_GIF/win_gif/win_06.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_07 = APP_RES_PATH "/Training/training_GIF/win_gif/win_07.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_08 = APP_RES_PATH "/Training/training_GIF/win_gif/win_08.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_09 = APP_RES_PATH "/Training/training_GIF/win_gif/win_09.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_10 = APP_RES_PATH "/Training/training_GIF/win_gif/win_10.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_11 = APP_RES_PATH "/Training/training_GIF/win_gif/win_11.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_12 = APP_RES_PATH "/Training/training_GIF/win_gif/win_12.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_13 = APP_RES_PATH "/Training/training_GIF/win_gif/win_13.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_14 = APP_RES_PATH "/Training/training_GIF/win_gif/win_14.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_15 = APP_RES_PATH "/Training/training_GIF/win_gif/win_15.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_16 = APP_RES_PATH "/Training/training_GIF/win_gif/win_16.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_17 = APP_RES_PATH "/Training/training_GIF/win_gif/win_17.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_18 = APP_RES_PATH "/Training/training_GIF/win_gif/win_18.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_19 = APP_RES_PATH "/Training/training_GIF/win_gif/win_19.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_20 = APP_RES_PATH "/Training/training_GIF/win_gif/win_20.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_21 = APP_RES_PATH "/Training/training_GIF/win_gif/win_21.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_22 = APP_RES_PATH "/Training/training_GIF/win_gif/win_22.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_23 = APP_RES_PATH "/Training/training_GIF/win_gif/win_23.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_24 = APP_RES_PATH "/Training/training_GIF/win_gif/win_24.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_25 = APP_RES_PATH "/Training/training_GIF/win_gif/win_25.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_26 = APP_RES_PATH "/Training/training_GIF/win_gif/win_26.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_27 = APP_RES_PATH "/Training/training_GIF/win_gif/win_27.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_28 = APP_RES_PATH "/Training/training_GIF/win_gif/win_28.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_29 = APP_RES_PATH "/Training/training_GIF/win_gif/win_29.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_30 = APP_RES_PATH "/Training/training_GIF/win_gif/win_30.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_31 = APP_RES_PATH "/Training/training_GIF/win_gif/win_31.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_32 = APP_RES_PATH "/Training/training_GIF/win_gif/win_32.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_33 = APP_RES_PATH "/Training/training_GIF/win_gif/win_33.bin"; + static constexpr const char *PNG_TRAINING_WIN_IMAGE_34 = APP_RES_PATH "/Training/training_GIF/win_gif/win_34.bin"; /* -------------------------------------------------------------------------- */ static constexpr const char *PNG_ALIPAY_BIND_FAILURE = APP_RES_PATH "/alipay/ALIPAY_BIND_FAILURE.bin"; static constexpr const char *PNG_ALIPAY_BIND_SUCCESS = APP_RES_PATH "/alipay/ALIPAY_BIND_SUCCESS.bin"; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index 22f5eab24..064c054d4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -469,7 +469,9 @@ void TraingModel::AnalysisData(cywee_activity_result_t *cyweeInfo) { ui_api_vibrate_once_func(); } TraingCardView::GetInstance()->SetPopupViewStatus(GetTagPopup, true); - TraingCardView::GetInstance()->GetAnimator()->Start(); + if (!TraingCardView::GetInstance()->GetAnimator()) { + TraingCardView::GetInstance()->GetAnimator()->Start(); + } Gettagstuats = true; } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp index 4267ca3f3..001199838 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp @@ -67,6 +67,192 @@ static const uint16_t LABEL_FONT_SIZE = 200; static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6; static const uint32_t CARD_PAGE_COLOR = 0xffd0d0d0; +// 动态刷新设置 +static constexpr uint16_t IMAGE_SIZE_X = 120; +static constexpr uint16_t IMAGE_SIZE_Y = 120; +static constexpr uint16_t IMAGE_POSITION_X = 173; +static constexpr uint16_t IMAGE_POSITION_Y = 100; +static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SIZE = 35; +static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SPEED = 35; + +static ImageAnimatorInfo g_imageAnimatorInfo_trainingwin[35] = { + {PNG_TRAINING_WIN_IMAGE_01, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_01, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_02, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_03, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_04, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_05, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_06, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_07, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_08, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_09, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_10, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_11, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_12, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_13, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_14, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_15, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_16, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_17, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_18, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_19, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_20, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_21, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_22, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_23, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_24, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_25, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_26, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_27, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_28, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_29, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_30, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_31, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_32, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_33, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, + {PNG_TRAINING_WIN_IMAGE_34, + {IMAGE_POSITION_X, IMAGE_POSITION_Y}, + IMAGE_SIZE_X, + IMAGE_SIZE_Y, + IMG_SRC_FILE_PATH}, +}; + static TraingCardView *g_pTraingCardView{nullptr}; TraingCardView::TraingCardView() { @@ -83,9 +269,7 @@ TraingCardView::TraingCardView() { } TraingCardView::~TraingCardView() { - imageAnimator->Stop(); - FreeImageInfoArray(winimageInfos, winbasePath.c_str(), 94); - ReleaseImageAnimatorSource(winimageAnimatorInfo, 94); + DeInit(); g_pTraingCardView = nullptr; @@ -148,7 +332,6 @@ void TraingCardView::DeInit() { /*界面*/ controlview_->RemoveAll(); dataallview_->RemoveAll(); - // DetailView->RemoveAll(); musicview_->RemoveAll(); endView->RemoveAll(); getView->RemoveAll(); @@ -190,19 +373,20 @@ void TraingCardView::DeInit() { buttonnote_ = nullptr; /*动画*/ - delete imageAnimator; - imageAnimator = nullptr; + if (imageAnimator) { + imageAnimator->Stop(); + delete imageAnimator; + imageAnimator = nullptr; + } /*卡片*/ delete controlview_; controlview_ = nullptr; delete dataallview_; dataallview_ = nullptr; - // delete DetailView; - // DetailView = nullptr; - delete swipe_; delete musicview_; musicview_ = nullptr; + /*弹窗*/ delete endView; endView = nullptr; @@ -211,6 +395,7 @@ void TraingCardView::DeInit() { delete heartView; heartView = nullptr; + delete swipe_; swipe_ = nullptr; } UICardPage *TraingCardView::InitControlPage(void) { @@ -300,17 +485,14 @@ void TraingCardView::SetPopupViewStatus(PopupType type, bool status) { } else if (type == HeartPopup) { popupView = heartView; } - if (popupView == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL"); return; } - UIView *cardview = TraingCardView::GetInstance()->GetTraingCrad(); if (cardview != nullptr) { cardview->SetVisible(!status); } - popupView->SetVisible(status); } /*结束弹窗界面*/ @@ -496,9 +678,20 @@ void TraingCardView::InitImageAnimator() { getView->Add(labeltag); // 初始化图片数组以及动画 - winimageInfos = CreateImageInfoArray(winbasePath.c_str(), 94); - InitImageAnimatorSource(imageAnimator, winimageAnimatorInfo, winimageInfos, - 94, 173, 100, 120, 120, "imageAnimator1", 10); + if (imageAnimator == nullptr) { + imageAnimator = new UIImageAnimatorView(); + if (imageAnimator == nullptr) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, + "AssistantAnswerView::new UIImageAnimatorView fail"); + return; + } + } + imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_trainingwin, + DETECTION_IMAGE_ANIMATORVIEW_SIZE, + DETECTION_IMAGE_ANIMATORVIEW_SPEED); + imageAnimator->SetRepeat(true); + // imageAnimator->Start(); + getView->Add(imageAnimator); } @@ -516,6 +709,7 @@ void TraingCardView::OnTearDownView() { void TraingCardView::OnStop() { View::OnStop(); + container_ = nullptr; RootView::GetInstance()->RemoveAll(); return; }