+
/*
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
* Description: bloodBandoff view
* Author:
* Create: 2021-08-01
*/
+#if 0
#include "UiConfig.h"
#include "wearable_log.h"
#include "BloodBandoffView.h"
return group;
}
}
+#endif
+
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: bloodBandoff view
+ * Author:
+ * Create: 2021-08-01
+ */
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "BloodBandoffView.h"
+#include "BloodOxygenModel.h"
+
+namespace OHOS
+{
+ // 动态显示图片设置
+ static constexpr uint16_t IMAGE_SIZE = 96;
+ static constexpr uint16_t IMAGE_POSITION_Y = 276;
+ static constexpr uint16_t IMAGE_POSITION_X = 179;
+ static constexpr uint16_t IMAGEANIMATOERVIEW_SIZE = 24;
+ static constexpr uint16_t IMAGEANIMATOERVIEW_SPEED = 40;
+
+ // 标签设置
+ static constexpr uint16_t LABEL_POSITION_X = 87;
+ static constexpr uint16_t LABEL_POSITION_Y = 200;
+ static constexpr uint16_t LABEL_POSITION_WIDTH = 288;
+ static constexpr uint16_t LABEL_POSITION_HEIGHT = 50;
+
+ // 图片设置
+ static constexpr uint16_t IMAGE_ENTER_POSITION_X = 131;
+ static constexpr uint16_t IMAGE_ENTER_POSITION_Y = 70;
+
+ static constexpr uint16_t TITLE_LABEL_DEFAULT_HEIGHT = 30;
+ static constexpr uint16_t FONT_DEFAULT_SIZE = 25;
+ static constexpr uint16_t VIEW_DISTANCE_TO_LEFT_SIDE = 48;
+ static constexpr uint16_t TEXT_DISTANCE_TO_LEFT_SIDE = 50;
+ static constexpr uint16_t TEXT_DISTANCE_TO_TOP_SIDE = 11;
+
+ static ImageAnimatorInfo g_imageAnimatorInfo_Time[IMAGEANIMATOERVIEW_SIZE] = {
+ {PNG_COUNTDOWN_TIME_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_COUNTDOWN_TIME_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ };
+ static BloodBandoffView *g_pMainView = nullptr;
+ BloodBandoffView::BloodBandoffView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::BloodBandoffView");
+ label = nullptr;
+ imageView = nullptr;
+ group = nullptr;
+ imageAnimator = nullptr;
+ g_pMainView = this;
+ }
+
+ BloodBandoffView::~BloodBandoffView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::~BloodBandoffView");
+ group->RemoveAll();
+ delete label;
+ delete imageView;
+ delete group;
+ delete imageAnimator;
+ label = nullptr;
+ imageView = nullptr;
+ group = nullptr;
+ imageAnimator = nullptr;
+ g_pMainView = nullptr;
+ }
+
+ BloodBandoffView *BloodBandoffView::GetInstance(void)
+ {
+ return g_pMainView;
+ }
+
+ UIViewGroup *BloodBandoffView::GetBandoffViewGroup()
+ {
+ return group;
+ }
+
+ UIImageAnimatorView *BloodBandoffView::GetImageAnimator()
+ {
+ return imageAnimator;
+ }
+
+ UIViewGroup *BloodBandoffView::CreateUIViewGroup()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::CreateUIViewGroup");
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new group fail");
+ return nullptr;
+ }
+ group->SetPosition(0, 0);
+ group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+
+ label = new UILabel();
+ if (label == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new Label fail");
+ return nullptr;
+ }
+ group->Add(label);
+ label->SetPosition(LABEL_POSITION_X, LABEL_POSITION_Y, LABEL_POSITION_WIDTH, LABEL_POSITION_HEIGHT);
+ label->SetText("偏紧佩戴,保持静止");
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
+ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+
+ imageAnimator = new UIImageAnimatorView();
+ if (imageAnimator == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new UIImageAnimatorView fail");
+ return nullptr;
+ }
+ imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_Time, IMAGEANIMATOERVIEW_SIZE, IMAGEANIMATOERVIEW_SPEED);
+ imageAnimator->Start();
+ imageAnimator->SetRepeat(false);
+ group->Add(imageAnimator);
+
+ imageView = new UIImageView();
+ if (imageView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new UIImageView fail");
+ return nullptr;
+ }
+ imageView->SetPosition(IMAGE_ENTER_POSITION_X, IMAGE_ENTER_POSITION_Y); // 30 : offset
+ imageView->SetSrc(PNG_BLOOD_ICON_ENTER);
+ group->Add(imageView);
+
+ return group;
+ }
+}
* Author:
* Create: 2021-08-01
*/
-
+#if 0
#include "BloodOxygenView.h"
#include "BloodOxygenModel.h"
return;
}
}
+#endif
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: bloodOxygen view
+ * Author:
+ * Create: 2021-08-01
+ */
+
+#include "BloodOxygenView.h"
+#include "BloodOxygenModel.h"
+
+namespace OHOS
+{
+ // 按钮设置
+ static constexpr uint16_t TESTBUTTON_ZERO = 0;
+ static constexpr uint16_t TESTBUTTON_X = 167;
+ static constexpr uint16_t TESTBUTTON_Y = 360;
+
+ // 进度条参数设置
+ static constexpr uint16_t CIRCLE_PROGRESS_VALUE = 100;
+ static constexpr uint16_t CIRCLE_PROGRESS_RADIUS = 43;
+ static constexpr uint16_t CIRCLE_PROGRESS_STARTANGLE = 360;
+ static constexpr uint16_t CIRCLE_PROGRESS_ENDANGLE = 0;
+ static constexpr uint16_t CIRCLE_PROGRESS_WIDTH = 10;
+ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_X = 10;
+ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_Y = 10;
+ static constexpr uint16_t CIRCLE_PROGRESS_CENTER_X = 195;
+ static constexpr uint16_t CIRCLE_PROGRESS_CENTER_Y = 37;
+ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_WIDTH = 275;
+ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_HEIGHT = 130;
+ static constexpr uint16_t CIRCLE_PROGRESS_LEFT = 10;
+ static constexpr uint16_t CIRCLE_PROGRESS_TOP = 5;
+
+ // 动态刷新设置
+ static constexpr uint16_t IMAGE_SIZE = 60;
+ static constexpr uint16_t IMAGE_POSITION_X = 186;
+ static constexpr uint16_t IMAGE_POSITION_Y = 23;
+ static constexpr uint16_t IMAGEANIMATORVIEW_SIZE = 31;
+ static constexpr uint16_t IMAGEANIMATORVIEW_SPEED = 40;
+
+ // 血氧主图设置
+ static constexpr uint16_t IMAGE_PROGRESS_POSITION_X = 176;
+ static constexpr uint16_t IMAGE_PROGRESS_POSITION_Y = 13;
+
+ // 血氧%显示
+ static constexpr uint16_t LABEL_PERCENT_POSITION_X = 258;
+ static constexpr uint16_t LABEL_PERCENT_POSITION_Y = 40;
+
+ // 血氧柱状图
+ static constexpr int16 VIEW_MAX_X = 415;
+ static constexpr int16 VIEW_MIN_X = 35;
+ static constexpr int16 VIEW_MAX_Y = 150;
+ static constexpr int16 VIEW_MIN_Y = 0;
+ static constexpr int16 VIEW_WIDTH = 7;
+ static constexpr int16 VIEW_HEIGHT = 300;
+ static constexpr uint16_t VIEW_BACKGROUND_OPA = 127;
+ static constexpr uint16_t VIEW_BORDER_RADIUS = 5;
+ static constexpr uint16_t BORDER_OPA = 127;
+ static constexpr uint16_t BORDER_WIDTH = 20;
+
+ static constexpr uint16_t TITLE_LABEL_DEFAULT_HEIGHT = 30;
+ static constexpr uint16_t FONT_DEFAULT_SIZE = 20;
+ static constexpr uint16_t VIEW_DISTANCE_TO_LEFT_SIDE = 48;
+ static constexpr uint16_t TEXT_DISTANCE_TO_LEFT_SIDE = 50;
+ static constexpr uint16_t TEXT_DISTANCE_TO_TOP_SIDE = 11;
+ static constexpr uint16_t BUTTON_LABEL_SIZE = 40;
+ static constexpr uint8_t BUTTON_STYLE_BORDER_RADIUS_VALUE = 20;
+ static constexpr uint32 BUTTON_STYLE_BACKGROUND_COLOR_VALUE = 0xFFFFFF;
+ static constexpr uint16_t BUTTON_WIDHT2 = 120;
+ static constexpr uint16_t BUTTON_HEIGHT2 = 60;
+
+ // 字体大小
+ static constexpr uint16_t PERCENT_FONT_SIZE = 25;
+
+ static constexpr uint16_t MATH_ZERO = 0;
+
+ static BloodOxygenView *g_pMainView = nullptr;
+ static ImageAnimatorInfo g_imageAnimatorInfo_new[31] = {
+ {PNG_BLOOD_FLOW_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_24, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_25, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_26, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_27, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_28, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_29, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BLOOD_FLOW_IMAGE_30, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ };
+
+ BloodOxygenView::BloodOxygenView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::BloodOxygenView");
+ imageViewMain = nullptr;
+ imageViewProgress = nullptr;
+ group = nullptr;
+ percent = nullptr;
+ testButton = nullptr;
+ circleProgress = nullptr;
+ imageAnimator = nullptr;
+ g_pMainView = this;
+ bloodbandoff = new BloodBandoffView();
+ if (bloodbandoff == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new BloodBandoffView fail");
+ }
+ }
+
+ BloodOxygenView::~BloodOxygenView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::~BloodOxygenView");
+ group->RemoveAll();
+ delete imageViewMain;
+ delete imageViewProgress;
+ delete group;
+ delete testButton;
+ delete percent;
+ delete circleProgress;
+ delete imageAnimator;
+ delete bloodbandoff;
+ imageViewMain = nullptr;
+ imageViewProgress = nullptr;
+ group = nullptr;
+ percent = nullptr;
+ testButton = nullptr;
+ circleProgress = nullptr;
+ imageAnimator = nullptr;
+ g_pMainView = nullptr;
+ bloodbandoff = nullptr;
+ }
+
+ BloodOxygenView *BloodOxygenView::GetInstance(void)
+ {
+ return g_pMainView;
+ }
+
+ UILabel *BloodOxygenView::GetPercent()
+ {
+ return percent;
+ }
+
+ UIViewGroup *BloodOxygenView::GetBloodOxygenGroup()
+ {
+ return group;
+ }
+
+ UILabelButton *BloodOxygenView::GetTestButton()
+ {
+ return testButton;
+ }
+
+ UICircleProgress *BloodOxygenView::GetCircleProgress()
+ {
+ return circleProgress;
+ }
+
+ UILabelButton *BloodOxygenView::CreateAndSetUIButton(const char *title)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUIButton");
+ UILabelButton *btn = new UILabelButton();
+ if (btn == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UILabelButton fail");
+ return nullptr;
+ }
+ btn->SetPosition(TESTBUTTON_X, TESTBUTTON_Y, BUTTON_WIDHT2, BUTTON_HEIGHT2);
+ btn->SetText(title);
+ btn->SetTextColor(Color::Red());
+ btn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, BUTTON_LABEL_SIZE);
+ btn->SetAlign(TEXT_ALIGNMENT_CENTER);
+ btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::RELEASED);
+ btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::PRESSED);
+ btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::INACTIVE);
+ btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::RELEASED);
+ btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::PRESSED);
+ btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::INACTIVE);
+ UIView::OnClickListener *clickLeftListener = (UIView::OnClickListener *)OHOS::BloodOxygenPresenter::GetInstance();
+ if (clickLeftListener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new clickLeftListener fail");
+ return nullptr;
+ }
+ btn->SetOnClickListener(clickLeftListener);
+ return btn;
+ }
+
+ bool BloodOxygenView::SetOnDragListener()
+ {
+ UIView::OnDragListener *dragListener = (UIView::OnDragListener *)OHOS::BloodOxygenPresenter::GetInstance();
+ if (dragListener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnDragListener fail");
+ return false;
+ }
+ group->SetDraggable(true);
+ group->SetTouchable(true);
+ group->SetOnDragListener(dragListener);
+ return true;
+ }
+
+ UIView *BloodOxygenView::CreateAndSetUIView(int16 x, int16 y) const
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUIView");
+ UIView *view = new UIView();
+ if (view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new View fail");
+ return nullptr;
+ }
+ if (x > VIEW_MAX_X || x < VIEW_MIN_X)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::X error");
+ return nullptr;
+ }
+ if (y < VIEW_MIN_Y || y > VIEW_MAX_Y)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::Y error");
+ return nullptr;
+ }
+ view->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full);
+ view->SetStyle(STYLE_BACKGROUND_OPA, VIEW_BACKGROUND_OPA); // 127 : background opacity
+ view->SetStyle(STYLE_BORDER_RADIUS, VIEW_BORDER_RADIUS); // 5 : radius value
+ view->SetStyle(STYLE_BORDER_COLOR, Color::Gray().full);
+ view->SetStyle(STYLE_BORDER_OPA, BORDER_OPA); // 127 : border opacity
+ view->SetStyle(STYLE_BORDER_WIDTH, BORDER_WIDTH); // 20 : border width
+ view->SetStyle(STYLE_PADDING_LEFT, MATH_ZERO);
+ view->SetStyle(STYLE_PADDING_RIGHT, MATH_ZERO);
+ view->SetStyle(STYLE_PADDING_TOP, MATH_ZERO);
+ view->SetStyle(STYLE_PADDING_BOTTOM, MATH_ZERO);
+ view->SetStyle(STYLE_MARGIN_LEFT, MATH_ZERO);
+ view->SetStyle(STYLE_MARGIN_RIGHT, MATH_ZERO);
+ view->SetStyle(STYLE_MARGIN_TOP, MATH_ZERO);
+ view->SetStyle(STYLE_MARGIN_BOTTOM, MATH_ZERO);
+
+ view->SetPosition(x, VIEW_HEIGHT - y);
+ view->SetStyle(STYLE_BORDER_WIDTH, MATH_ZERO);
+ view->SetStyle(STYLE_BORDER_RADIUS, MATH_ZERO); // 2 : half width 10 : offset
+ view->Resize(VIEW_WIDTH, y);
+ return view;
+ }
+
+ UICircleProgress *BloodOxygenView::CreateAndSetUICircleProgress()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUICircleProgress");
+ UICircleProgress *circle = new UICircleProgress();
+ circle->SetPosition(CIRCLE_PROGRESS_POSITION_X, CIRCLE_PROGRESS_POSITION_Y,
+ CIRCLE_PROGRESS_POSITION_WIDTH, CIRCLE_PROGRESS_POSITION_HEIGHT);
+ circle->SetCenterPosition(CIRCLE_PROGRESS_CENTER_X, CIRCLE_PROGRESS_CENTER_Y);
+ circle->SetRadius(CIRCLE_PROGRESS_RADIUS);
+ circle->SetValue(CIRCLE_PROGRESS_VALUE);
+ circle->SetBackgroundStyle(STYLE_LINE_WIDTH,
+ circle->GetBackgroundStyle(STYLE_LINE_WIDTH) + CIRCLE_PROGRESS_WIDTH);
+ circle->SetForegroundStyle(STYLE_LINE_WIDTH,
+ circle->GetForegroundStyle(STYLE_LINE_WIDTH) + CIRCLE_PROGRESS_WIDTH);
+ circle->SetStyle(STYLE_PADDING_LEFT, CIRCLE_PROGRESS_LEFT);
+ circle->SetStyle(STYLE_PADDING_TOP, CIRCLE_PROGRESS_TOP);
+ circle->SetStartAngle(CIRCLE_PROGRESS_STARTANGLE);
+ circle->SetEndAngle(CIRCLE_PROGRESS_ENDANGLE);
+ circle->SetImage(nullptr, PNG_PROGRESS_BAR_TMAGE);
+ circle->SetLineColor(Color::Black());
+
+ return circle;
+ }
+
+ bool BloodOxygenView::InitImageDisplay()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::InitImageDisplay");
+ imageViewMain = new UIImageView();
+ if (imageViewMain == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageView fail");
+ return false;
+ }
+ imageViewMain->SetPosition(MATH_ZERO, MATH_ZERO); // 30 : offset
+ imageViewMain->SetSrc(PNG_BLOODOXYGEN_IMAGE_PATH);
+ group->Add(imageViewMain);
+
+ imageAnimator = new UIImageAnimatorView();
+ if (imageAnimator == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageAnimatorView fail");
+ return false;
+ }
+ imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_new, IMAGEANIMATORVIEW_SIZE, IMAGEANIMATORVIEW_SPEED);
+ imageAnimator->Start();
+ imageAnimator->SetRepeat(true);
+ group->Add(imageAnimator);
+
+ imageViewProgress = new UIImageView();
+ if (imageViewProgress == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageView fail");
+ return false;
+ }
+ imageViewProgress->SetPosition(IMAGE_PROGRESS_POSITION_X, IMAGE_PROGRESS_POSITION_Y); // 30 : offset
+ imageViewProgress->SetSrc(PNG_PROGRESS_BAR_TMAGE);
+ group->Add(imageViewProgress);
+
+ return true;
+ }
+
+ void BloodOxygenView::OnStart()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnStart");
+ View<BloodOxygenPresenter>::OnStart();
+
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new group fail");
+ return;
+ }
+ group->SetPosition(MATH_ZERO, MATH_ZERO);
+ group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+
+ if (InitImageDisplay() == false)
+ {
+ return;
+ }
+
+ if (SetOnDragListener() == false)
+ {
+ return;
+ }
+
+ circleProgress = CreateAndSetUICircleProgress();
+ if (circleProgress == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new circleProgress fail");
+ return;
+ }
+ group->Add(circleProgress);
+
+ percent = new UILabel();
+ if (percent == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new Label fail");
+ return;
+ }
+ percent->SetPosition(LABEL_PERCENT_POSITION_X, LABEL_PERCENT_POSITION_Y,
+ VIEW_DISTANCE_TO_LEFT_SIDE, TITLE_LABEL_DEFAULT_HEIGHT);
+ percent->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+ percent->SetText("%97");
+ percent->SetFont(DEFAULT_VECTOR_FONT_FILENAME, PERCENT_FONT_SIZE);
+ percent->SetTextColor(Color::Red());
+ group->Add(percent);
+
+ testButton = CreateAndSetUIButton("测试");
+ if (testButton == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new Button fail");
+ return;
+ }
+ group->Add(testButton);
+
+ if (OHOS::BloodOxygenModel::GetInstance()->GetBloodOxygenViewStatus() == true)
+ {
+ testButton->SetTouchable(false);
+ percent->SetText("");
+ }
+
+ BloodBandoffView::GetInstance()->CreateUIViewGroup();
+
+ RootView::GetInstance()->Add(group);
+ RootView::GetInstance()->Add(BloodBandoffView::GetInstance()->GetBandoffViewGroup());
+ BloodBandoffView::GetInstance()->GetBandoffViewGroup()->SetVisible(false);
+ }
+
+ void BloodOxygenView::OnSetUpView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnSetUpView");
+ View<BloodOxygenPresenter>::OnSetUpView();
+ Draw();
+ }
+
+ void BloodOxygenView::OnTearDownView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnTearDownView");
+ View<BloodOxygenPresenter>::OnTearDownView();
+ return;
+ }
+
+ void BloodOxygenView::OnStop()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnStop");
+ View<BloodOxygenPresenter>::OnStop();
+ RootView::GetInstance()->RemoveAll();
+ return;
+ }
+}