From: luozheng <1732036298@qq.com> Date: Wed, 30 Oct 2024 10:04:18 +0000 (+0800) Subject: 弧形列表优化 X-Git-Tag: fd230_release_V1.3.102~157^2 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F1297%2Fhead;p=mirrors%2FFD230.git 弧形列表优化 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp index 285147d24..4e9269979 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistView.cpp @@ -207,44 +207,25 @@ void ApplistView::ListStyleOnStart() static bool TransformItemBaseOnPosition(UITransformList* list, UIView* item) { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TransformItemBaseOnPosition [%d]", __LINE__); if (list == nullptr || item == nullptr) { return false; } if (item->GetViewType() != UI_TRANSFORM_GROUP) { return false; } - ArcScaleListItemView * group = dynamic_cast(item); + UITransformGroup* group = dynamic_cast(item); if (group == nullptr) { return false; } - if(group->GetImage() == nullptr) - { - return false; - } - if(group->GetLabel() == nullptr) - { - return false; - } - - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TransformItemBaseOnPosition [%d]", __LINE__); int16_t w = group->GetWidth(); int16_t h = group->GetHeight(); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TransformItemBaseOnPosition [%d] %d %d", __LINE__,w,h); if (list->GetDirection() == UIList::VERTICAL) { int16_t midY = list->GetY() + (list->GetHeight() >> 1); int16_t y = group->GetY(); int offset = (y + (h >> 1) - midY); - // group->Scale(Vector2(scale, scale), Vector2((w>>1), h >> 1)); - - int img_temp = EasingEquation::SineEaseIn(0, ARC_SCALE_LIST_SCALE_FACTOR, abs(offset), ARC_SCALE_LIST_SCALE_FACTOR); - float img_scale = 1.0 - (static_cast(img_temp) / ARC_SCALE_LIST_SCALE_FACTOR); - group->GetImage()->Scale(Vector2(img_scale, img_scale), Vector2((w>>1), h >> 1)); - - int label_temp = EasingEquation::SineEaseIn(0, ARC_SCALE_LIST_SCALE_FACTOR/2, abs(offset), ARC_SCALE_LIST_SCALE_FACTOR); - float label_scale = 1.0 - (static_cast(label_temp) / ARC_SCALE_LIST_SCALE_FACTOR); - group->GetLabel()->Scale(Vector2(label_scale, label_scale), Vector2((w>>1), h >> 1)); - + int temp = EasingEquation::SineEaseIn(0, ARC_SCALE_LIST_SCALE_FACTOR, abs(offset), ARC_SCALE_LIST_SCALE_FACTOR); + float scale = 1.0 - (static_cast(temp) / ARC_SCALE_LIST_SCALE_FACTOR); + group->Scale(Vector2(scale, scale), Vector2(w >> 1, h >> 1)); if ((y <= midY) && (y + group->GetHeight() >= midY)) { return true; }