/*---------------------------------------------------------------------------- * Copyright (c) TJD Technologies Co., Ltd. 2024. All rights reserved. * * Description: * * Author: huangshuyi * * Create: 2024-8 *--------------------------------------------------------------------------*/ #include "common/screen.h" #include "TjdUiAppCurtainGaosiEffect.h" #include "dfx/dfx_dom_dump.h" using namespace OHOS; namespace TJD { void TjdUiAppCurtainGaosiEffect::OnSwipe(UISwipeView& view) { ImageInfo info; if (preLeftCard) { container_->UIViewGroup::Remove(screenshotImage_); container_->UIViewGroup::Remove(group); if (preLeftCard->GetViewType() != UI_IMAGE_VIEW) { ImageCacheFree(screenshotInfo_); } delete screenshotImage_; delete group; screenshotImage_ = nullptr; preLeftCard->SetVisible(true); preRightCard->SetVisible(true); preLeftCard = nullptr; preRightCard = nullptr; } } // 左rose 中cat 右dove //向右滑 leftcard是rose rightcard是cat //向左滑 leftcard是cat rightcard是dove void TjdUiAppCurtainGaosiEffect::CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset) { //printf("xOffset:%d\n", xOffset); if (preLeftCard != leftCard && preRightCard != rightCard) { //printf("init preLeftCard and preRightCard\n"); if (leftCard->GetViewType() == UI_IMAGE_VIEW) { if (xOffset > 0) { screenshotInfo_ = *(static_cast(rightCard)->GetImageInfo()); } else { screenshotInfo_ = *(static_cast(leftCard)->GetImageInfo()); } } else { if (xOffset > 0) { rightCard->GetBitmap(screenshotInfo_); } else { leftCard->GetBitmap(screenshotInfo_); } } preLeftCard = leftCard; preRightCard = rightCard; if (screenshotImage_ == nullptr) { screenshotImage_ = new UIImageView(); group = new UIViewGroup(); group->SetPosition(0, 0, Screen::GetInstance().GetHeight(), Screen::GetInstance().GetWidth()); group->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); group->SetBackgroundBlur(10); group->SetFullScreenBlur(false); } screenshotImage_->SetPosition(0, 0, Screen::GetInstance().GetHeight(), Screen::GetInstance().GetWidth()); if (xOffset > 0) { rightCard->SetVisible(false); screenshotImage_->SetSrc(&screenshotInfo_); container_->UIViewGroup::Insert(nullptr, screenshotImage_); container_->UIViewGroup::Insert(screenshotImage_, group); // DfxDomDump::GetInstance().DumpView(container_); } else { screenshotImage_->SetSrc(&screenshotInfo_); leftCard->SetVisible(false); container_->UIViewGroup::Insert(nullptr, screenshotImage_); container_->UIViewGroup::Insert(screenshotImage_, group); // DfxDomDump::GetInstance().DumpView(container_); //DfxDomDump::GetInstance().DumpView(container_); } } return; } void TjdUiAppCurtainGaosiEffect::CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset) { CommonAlg(leftCard, rightCard, xOffset); } void TjdUiAppCurtainGaosiEffect::CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset) { CommonAlg(leftCard, rightCard, xOffset); } }