#define ARC_SCALE_LIST_ITEM_WIDTH (400)
- #define ARC_SCALE_LIST_ITEM_HEIGHT (130) // (100)
- #define ARC_SCALE_LIST_IMAGE_X (10)//(30)
- #define ARC_SCALE_LIST_IMAGE_WIDTH (100)
- #define ARC_SCALE_LIST_IMAGE_HEIGHT (100)
- #define ARC_SCALE_LIST_TEXT_X (ARC_SCALE_LIST_IMAGE_X + ARC_SCALE_LIST_IMAGE_WIDTH)
- #define ARC_SCALE_LIST_TEXT_WIDTH (ARC_SCALE_LIST_ITEM_WIDTH - ARC_SCALE_LIST_TEXT_X)
- #define ARC_SCALE_LIST_TEXT_HEIGHT (100)
+ #define ARC_SCALE_LIST_ITEM_HEIGHT (100)
+ #define ARC_SCALE_LIST_IMAGE_X (0)
+ #define ARC_SCALE_LIST_IMAGE_Y (0)
+ #define ARC_SCALE_LIST_IMAGE_WIDTH (90)
+ #define ARC_SCALE_LIST_IMAGE_HEIGHT (90)
+ #define ARC_SCALE_LIST_TEXT_X (108)
+ #define ARC_SCALE_LIST_TEXT_WIDTH (180)
+ #define ARC_SCALE_LIST_TEXT_HEIGHT (42)
+ #define ARC_SCALE_LIST_TEXT_Y (ARC_SCALE_LIST_ITEM_HEIGHT - ARC_SCALE_LIST_TEXT_HEIGHT) / 2
ArcScaleListItemView::ArcScaleListItemView()
{
Resize(ARC_SCALE_LIST_ITEM_WIDTH, ARC_SCALE_LIST_ITEM_HEIGHT);
SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- // SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
SetTouchable(true);
-
- if (image_ == nullptr) {
- image_ = new UIImageView();
- if (image_ == nullptr) {
- return ;
- }
- }
- image_->SetPosition(ARC_SCALE_LIST_IMAGE_X, 0, ARC_SCALE_LIST_IMAGE_WIDTH, ARC_SCALE_LIST_IMAGE_HEIGHT);
- image_->SetResizeMode(UIImageView::ImageResizeMode::CENTER);
-
- if (label_ == nullptr) {
- label_ = new UILabelExt();
- if (label_ == nullptr) {
- delete image_;
- image_ = nullptr;
- return ;
- }
- }
- label_->SetPosition(ARC_SCALE_LIST_TEXT_X, 0, ARC_SCALE_LIST_TEXT_WIDTH, ARC_SCALE_LIST_TEXT_HEIGHT);
- label_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40: item font size
- label_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
- label_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-
- Add(image_);
- Add(label_);
+ SetUpChild();
}
ArcScaleListItemView::~ArcScaleListItemView()
label_->SetTextId(itemInfo.TextId);
}
+ void ArcScaleListItemView::SetUpChild()
+ {
+ if (image_ == nullptr) {
+ image_ = new UIImageView();
+ if (image_ == nullptr) {
+ return ;
+ }
+ }
+ image_->SetPosition(ARC_SCALE_LIST_IMAGE_X, ARC_SCALE_LIST_IMAGE_Y, ARC_SCALE_LIST_IMAGE_WIDTH, ARC_SCALE_LIST_IMAGE_HEIGHT);
+ Add(image_);
+ /* -------------------------------------------------------------------------- */
+ if (label_ == nullptr) {
+ label_ = new UILabelExt();
+ if (label_ == nullptr) {
+ delete image_;
+ image_ = nullptr;
+ return ;
+ }
+ }
+ label_->SetPosition(ARC_SCALE_LIST_TEXT_X, 25, ARC_SCALE_LIST_TEXT_WIDTH, ARC_SCALE_LIST_TEXT_HEIGHT);
+ label_->SetStyle(STYLE_LINE_HEIGHT,42);
+ label_->SetStyle(STYLE_TEXT_FONT,36);
+ label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 36);
+ label_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ label_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ Add(label_);
+ }
+
+
AppViewId ArcScaleListItemView::GetViewId()
{
return itemInfo_.id;
return itemInfo_.uid;
}
+ UILabelExt *ArcScaleListItemView::GetLabel(void)
+ {
+ return label_;
+ }
+
+ UIImageView *ArcScaleListItemView::GetImage(void)
+ {
+ return image_;
+ }
}
static constexpr int16 MAX_SCROLL_DIS = 1000;
static constexpr int16 ROTATE_FACTOR_2 = 2;
-#define ARC_SCALE_LIST_SCALE_FACTOR (350)//(400)
-#define ARC_SCALE_LIST_X (25)
-#define ARC_SCALE_LIST_Y (30)
+#define ARC_SCALE_LIST_SCALE_FACTOR (400)//(400)
+#define ARC_SCALE_LIST_X (50)
+#define ARC_SCALE_LIST_Y (0)
#define ARC_SCALE_LIST_WIDTH (Screen::GetInstance().GetWidth() - ARC_SCALE_LIST_X)
-#define ARC_SCALE_LIST_HEIGHT (Screen::GetInstance().GetHeight() - ARC_SCALE_LIST_Y * 2)
+#define ARC_SCALE_LIST_HEIGHT (Screen::GetInstance().GetHeight())
ApplistView::ApplistView()
delete ArcScaleListGroup_;
ArcScaleListGroup_ = nullptr;
}
+ if(nullptr != ArcScaleListDragListener_)
+ {
+ delete ArcScaleListDragListener_;
+ ArcScaleListDragListener_ = nullptr;
+ }
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::~ApplistView end...");
}
if (item->GetViewType() != UI_TRANSFORM_GROUP) {
return false;
}
- UITransformGroup * group = dynamic_cast<UITransformGroup*>(item);
+ ArcScaleListItemView * group = dynamic_cast<ArcScaleListItemView*>(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);
- int temp = EasingEquation::SineEaseIn(0, ARC_SCALE_LIST_SCALE_FACTOR, abs(offset), ARC_SCALE_LIST_SCALE_FACTOR);
- float scale = 1.0 - (static_cast<float>(temp) / ARC_SCALE_LIST_SCALE_FACTOR);
- group->Scale(Vector2<float>(scale, scale), Vector2<float>(w >> 1, h >> 1));
+ // group->Scale(Vector2<float>(scale, scale), Vector2<float>((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<float>(img_temp) / ARC_SCALE_LIST_SCALE_FACTOR);
+ group->GetImage()->Scale(Vector2<float>(img_scale, img_scale), Vector2<float>((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<float>(label_temp) / ARC_SCALE_LIST_SCALE_FACTOR);
+ group->GetLabel()->Scale(Vector2<float>(label_scale, label_scale), Vector2<float>((w>>1), h >> 1));
+
if ((y <= midY) && (y + group->GetHeight() >= midY)) {
return true;
}
if (nullptr == ArcScaleList_)
{
- ArcScaleList_ = new UITransformList();
+ ArcScaleList_ = new UITransformList(UIList::VERTICAL);
if (nullptr == ArcScaleList_)
return;
ArcScaleList_->SetThrowDrag(true);
ArcScaleList_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
ArcScaleList_->SetScrollBlankSize(40);//(50);
- ArcScaleList_->SetMaxScrollDistance(1000); // 1000: max scroll distance
+ ArcScaleList_->SetMaxScrollDistance(1000*2); // 1000: max scroll distance
ArcScaleList_->SetSwipeACCLevel(800); // 800: compensation distance
ArcScaleList_->SetDragACCLevel(5); // 5: drag acceleration
ArcScaleList_->SetYScrollBarVisible(true);
// ArcScaleList_->SetScrollStateListener(presenter_);
-
+ ArcScaleList_->SetReboundSize(35);
+ ArcScaleList_->EnableAutoAlign(true);
+ ArcScaleList_->SetItemSpace(10);
ArcScaleList_->SetRotateFactor(ROTATE_FACTOR_2);
ArcScaleList_->RequestFocus();
+ ArcScaleList_->RefreshList();
if(nullptr == ArcScaleListDragListener_)
{
RootView::GetInstance()->ClearOnKeyActListener();
} else if (style == AppListStyle::HEXAGONS_STYLE) {
HexagonsStyleOnStop();//蜂窝
- }
- else if(AppListStyle::ARC_SCALE_LIST_STYLE == style)
- {
- ArcScaleListStyleOnStop();
+ } else if(AppListStyle::ARC_SCALE_LIST_STYLE == style) {
+ ArcScaleListStyleOnStop(); //弧形
RootView::GetInstance()->ClearOnKeyActListener();
- }
- else {
+ } else {
ListStyleOnStop();//list
RootView::GetInstance()->ClearOnKeyActListener();
}
} else {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::OnStop GetPreApplistStyleFlag == true");
- if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::HEXAGONS_STYLE)
- {
+ if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::HEXAGONS_STYLE) {
HexagonsStyleOnStop();
- }
- else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::APPLIST_STYLE)
- {
+ } else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::APPLIST_STYLE) {
ListStyleOnStop();
- }
- else if(AppListStyle::ARC_SCALE_LIST_STYLE == ThemeStyleModel::GetInstance().GetPreApplistStyle())
- {
+ } else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::ARC_SCALE_LIST_STYLE ) {
ArcScaleListStyleOnStop();
+ } else if(ThemeStyleModel::GetInstance().GetPreApplistStyle() == AppListStyle::FOOTBALL_STYLE) {
+ FootballStyleOnStop();
+ RootView::GetInstance()->ClearOnKeyActListener();
}
ThemeStyleModel::GetInstance().SetTheSameSliceChangeFlag(false);
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::ListStyleOnStop end...");
}
+//弧形列表
void ApplistView::ArcScaleListStyleOnStop(void)
{
if(nullptr != ArcScaleListGroup_)