From b3e54eb47353c6513cde562c168ae3005cf3982b Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Sun, 29 Sep 2024 21:25:35 +0800 Subject: [PATCH] =?utf8?q?1.=E8=A7=A3=E5=86=B3=E5=8B=BF=E6=89=B0=E6=A8=A1?= =?utf8?q?=E5=BC=8F=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F=E9=97=AE=E9=A2=98?= =?utf8?q?=202.=E8=A7=A3=E5=86=B3=E5=8B=BF=E6=89=B0=E6=A8=A1=E5=BC=8F?= =?utf8?q?=E7=95=8C=E9=9D=A2=E4=B8=ADlabel=E5=9C=A8=E5=88=87=E6=8D=A2?= =?utf8?q?=E6=88=90=E5=85=B6=E4=BB=96=E5=9B=BD=E8=AF=AD=E8=A8=80=E5=AF=BC?= =?utf8?q?=E8=87=B4=E5=AD=97=E4=BD=93=E9=81=AE=E7=9B=96=E4=B8=8B=E9=9D=A2?= =?utf8?q?=E7=9A=84Button=E9=97=AE=E9=A2=98=203.=E5=8B=BF=E6=89=B0?= =?utf8?q?=E6=A8=A1=E5=BC=8F=E7=95=8C=E9=9D=A2=E6=B7=BB=E5=8A=A0=E7=BC=96?= =?utf8?q?=E7=A0=81=E5=99=A8=E6=8E=A7=E5=88=B6=E7=95=8C=E9=9D=A2=E9=97=AE?= =?utf8?q?=E9=A2=98=204.=E8=A7=A3=E5=86=B3=E5=8B=BF=E6=89=B0=E6=A8=A1?= =?utf8?q?=E5=BC=8F=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dnotdisturb/include/DnotDisturbView.h | 3 +- .../dnotdisturb/src/DnotDisturbView.cpp | 83 ++++++++++++++----- 2 files changed, 66 insertions(+), 20 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h index 80db09b20..f5f25ef3f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-10 11:58:15 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-06-29 16:04:53 + * @LastEditTime: 2024-09-29 21:04:14 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h */ #ifndef DNOTDISTURB_VIEW_H @@ -45,6 +45,7 @@ namespace OHOS UILabelExt *AttentionLabel{nullptr}; UILabelButtonExt *ButtonOn; UILabelButtonExt *ButtonOff; + UIImageView *temp{nullptr}; }; } #endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp index 7dea6f519..0cff23458 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-10 11:58:21 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-08-26 17:39:08 + * @LastEditTime: 2024-09-29 21:19:46 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp */ #include "dnotdisturb/include/DnotDisturbView.h" @@ -71,6 +71,13 @@ namespace OHOS delete ButtonOff; ButtonOff = nullptr; } + if (temp != nullptr) + { + delete temp; + temp = nullptr; + } + delete scrollView; + scrollView = nullptr; } } @@ -89,6 +96,15 @@ namespace OHOS scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); scrollView->SetTouchable(true); scrollView->SetDraggable(true); + scrollView->SetScrollBlankSize(30); + scrollView->SetReboundSize(30); + scrollView->SetDirection(1); + scrollView->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。 + scrollView->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。 + scrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/ + FocusManager::GetInstance()->RequestFocus(scrollView); + FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP); + scrollView->SetRotateFactor(1.0); UIView::OnDragListener *dragListener = static_cast(DnotDisturbPresenter::GetInstance()); if (dragListener == nullptr) { @@ -110,6 +126,7 @@ namespace OHOS showTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE); showTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); showTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + scrollView->Add(showTitleLabel); /* -------------------------------------------------------------------------- */ DnotDisturbImage = new UIImageView(); if (DnotDisturbImage == nullptr) @@ -125,6 +142,7 @@ namespace OHOS DnotDisturbImage->SetAutoEnable(false); DnotDisturbImage->SetResizeMode(UIImageView::FILL); DnotDisturbImage->SetSrc(PNG_APPLIST_DISTURB_IMAGE); + scrollView->Add(DnotDisturbImage); /* -------------------------------------------------------------------------- */ AttentionLabel = new UILabelExt(); if (AttentionLabel == nullptr) @@ -136,11 +154,12 @@ namespace OHOS AttentionLabel->SetStyle(STYLE_TEXT_FONT, 30); AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 35); // bool ?勿扰模式已开启是否关闭:开启勿扰模式,手表将不会发出震动与铃声,是否开启 - AttentionLabel->SetTextId(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() ? STR_DISTURBNOTE_OFF : STR_DO_NOT_DISTURB_MODE); + AttentionLabel->SetTextId(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() ? STR_DISTURBNOTE_OFF : STR_DO_NOT_DISTURB_MODE); AttentionLabel->SetLineBreakMode(UILabelExt::LINE_BREAK_WRAP); AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + scrollView->Add(AttentionLabel); /* -------------------------------------------------------------------------- */ ButtonOn = new UILabelButtonExt(); if (ButtonOn == nullptr) @@ -148,7 +167,7 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOn new fail!!"); return; } - ButtonOn->SetPosition(256, 320, 120, 120); + ButtonOn->SetPosition(256, AttentionLabel->GetY() + AttentionLabel->GetHeight() + 20, 120, 120); ButtonOn->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000); ButtonOn->SetStyle(STYLE_BACKGROUND_OPA, 0x00); const char *ButtonOnImgSrc = "/user/res/SYSTEM_CheckOn.bin"; @@ -156,8 +175,8 @@ namespace OHOS ButtonOn->SetImagePosition(10, 10); ButtonOn->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED); ButtonOn->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED); - UIView::OnClickListener *labelButtonClick1 = static_cast(DnotDisturbPresenter::GetInstance()); - ButtonOn->SetOnClickListener(labelButtonClick1); + ButtonOn->SetOnClickListener(presenter_); + scrollView->Add(ButtonOn); /* -------------------------------------------------------------------------- */ ButtonOff = new UILabelButtonExt(); if (ButtonOff == nullptr) @@ -165,7 +184,7 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOff new fail!!"); return; } - ButtonOff->SetPosition(111, 320, 120, 120); + ButtonOff->SetPosition(111, AttentionLabel->GetY() + AttentionLabel->GetHeight() + 20, 120, 120); ButtonOff->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000); ButtonOff->SetStyle(STYLE_BACKGROUND_OPA, 0x00); const char *ButtonOffImgSrc = "/user/res/SYSTEM_CheckOff.bin"; @@ -173,8 +192,24 @@ namespace OHOS ButtonOff->SetImagePosition(10, 10); ButtonOff->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED); ButtonOff->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED); - UIView::OnClickListener *labelButtonClick2 = static_cast(DnotDisturbPresenter::GetInstance()); - ButtonOff->SetOnClickListener(labelButtonClick2); + ButtonOff->SetOnClickListener(presenter_); + scrollView->Add(ButtonOff); + /* -------------------------------------------------------------------------- */ + if ((ButtonOff->GetY() + ButtonOff->GetHeight() > Screen::GetInstance().GetHeight())) + { + if (temp == nullptr) + { + temp = new UIImageView(); + if (temp == nullptr) + { + return; + } + + temp->SetPosition(43, ButtonOff->GetY() + ButtonOff->GetHeight(), 380, 40); + temp->SetVisible(false); + scrollView->Add(temp); + } + } } } @@ -211,23 +246,28 @@ namespace OHOS void DnotDisturbView::OnStart() { View::OnStart(); + SetContainerView(new UIViewGroup()); + if (GetContainer() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail!!"); + return; + } + container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + container_->SetTouchable(true); + container_->SetDraggable(true); + DnotDisturbViewInit(); - // 增加按键监听 - RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DnotDisturbPresenter::GetInstance(); - RootView::GetInstance()->SetOnKeyActListener(keyactListener); + RootView::GetInstance()->SetOnKeyActListener(presenter_); } void DnotDisturbView::OnSetUpView() { View::OnSetUpView(); - scrollView->Add(showTitleLabel); - scrollView->Add(DnotDisturbImage); - scrollView->Add(AttentionLabel); - scrollView->Add(ButtonOn); - scrollView->Add(ButtonOff); - RootView::GetInstance()->Add(scrollView); - container_ = scrollView; + if (scrollView) + { + container_->Add(scrollView); + } Draw(); } @@ -240,8 +280,13 @@ namespace OHOS void DnotDisturbView::OnStop() { - View::OnStop(); + if (container_ != nullptr) + { + container_->RemoveAll(); + delete container_; + container_ = nullptr; + } RootView::GetInstance()->RemoveAll(); RootView::GetInstance()->ClearOnKeyActListener(); ClearAll(); -- 2.17.1