From fa1f45c46351db40cf94e46cd3e180dc843cc47f Mon Sep 17 00:00:00 2001 From: xuechangfeng <963779172@qq.com> Date: Wed, 30 Jun 2021 14:02:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- entry/src/main/config.json | 2 +- ...Ablity.java => UseCasesAbilityAblity.java} | 6 +- .../sample/slice/MainAbilitySlice.java | 878 ++++++++++-------- ...tySlice.java => UseCasesAbilitySlice.java} | 14 +- 5 files changed, 480 insertions(+), 422 deletions(-) rename entry/src/main/java/com/leinardi/ohos/speeddial/sample/{UseCasesActivityAblity.java => UseCasesAbilityAblity.java} (52%) rename entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/{UseCasesActivitySlice.java => UseCasesAbilitySlice.java} (91%) diff --git a/README.md b/README.md index 783265d..95a8db2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ - 项目移植状态:主功能完成 - 调用差异:鸿蒙暂不支持ListContainer动画展开效果 - 开发版本:sdk6,DevEco Studio 2.2 Beta1 -- 基线版本:Release v1.1 +- 基线版本:Release v3.2.0 #### 效果演示 ![效果演示](./img/demo.gif) diff --git a/entry/src/main/config.json b/entry/src/main/config.json index 54af473..6080e96 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -50,7 +50,7 @@ }, { "orientation": "unspecified", - "name": "com.leinardi.ohos.speeddial.sample.UseCasesActivityAblity", + "name": "com.leinardi.ohos.speeddial.sample.UseCasesAbilityAblity", "icon": "$media:icon", "description": "$string:usecasesactivity_description", "label": "$string:app_name", diff --git a/entry/src/main/java/com/leinardi/ohos/speeddial/sample/UseCasesActivityAblity.java b/entry/src/main/java/com/leinardi/ohos/speeddial/sample/UseCasesAbilityAblity.java similarity index 52% rename from entry/src/main/java/com/leinardi/ohos/speeddial/sample/UseCasesActivityAblity.java rename to entry/src/main/java/com/leinardi/ohos/speeddial/sample/UseCasesAbilityAblity.java index fe38f9b..79756cf 100644 --- a/entry/src/main/java/com/leinardi/ohos/speeddial/sample/UseCasesActivityAblity.java +++ b/entry/src/main/java/com/leinardi/ohos/speeddial/sample/UseCasesAbilityAblity.java @@ -1,13 +1,13 @@ package com.leinardi.ohos.speeddial.sample; -import com.leinardi.ohos.speeddial.sample.slice.UseCasesActivitySlice; +import com.leinardi.ohos.speeddial.sample.slice.UseCasesAbilitySlice; import ohos.aafwk.ability.Ability; import ohos.aafwk.content.Intent; -public class UseCasesActivityAblity extends Ability { +public class UseCasesAbilityAblity extends Ability { @Override public void onStart(Intent intent) { super.onStart(intent); - super.setMainRoute(UseCasesActivitySlice.class.getName()); + super.setMainRoute(UseCasesAbilitySlice.class.getName()); } } diff --git a/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/MainAbilitySlice.java b/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/MainAbilitySlice.java index cc8905e..1dc826b 100644 --- a/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/MainAbilitySlice.java +++ b/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/MainAbilitySlice.java @@ -313,58 +313,7 @@ public class MainAbilitySlice extends AbilitySlice { @Override public void onClick(Component component) { if (!isAddFloat) { - isOrange = true; - isDelete = false; - isYellow = false; - isFourTopSize = "0"; - isAddFloat = true; - mListContainer.setEnabled(false); - mImageAdd.setVisibility(Component.HIDE); - mImageAddPen.setVisibility(Component.VISIBLE); - if (posDegree == 0) { - mImageAdd.setWidth(90); - mImageAdd.setHeight(90); - animatorPropertyAddPen.rotate(45).setDuration(10); - animatorPropertyAddPen.start(); - } else if (posDegree == 1) { - animatorPropertyAdd.rotate(0).setDuration(1); - animatorPropertyAdd.start(); - mImageAdd.setWidth(90); - mImageAdd.setHeight(90); - animatorPropertyAddPen.rotate(45).setDuration(300); - animatorPropertyAddPen.start(); - } else if (posDegree == 2) { - animatorPropertyAdd.rotate(-45).setDuration(1); - animatorPropertyAdd.start(); - PixelMapElement pixelMapElement = null; - try { - pixelMapElement = new PixelMapElement(mImageAddPen.getResourceManager() - .getResource(ResourceTable.Media_brush1)); - } catch (IOException e) { - e.printStackTrace(); - } catch (NotExistException e) { - e.printStackTrace(); - } - mImageAddPen.setBackground(pixelMapElement); - animatorPropertyAddPen.rotate(90).setDuration(300); - animatorPropertyAddPen.start(); - } else if (posDegree == 3) { - animatorPropertyAdd.rotate(-45).setDuration(1); - animatorPropertyAdd.start(); - - PixelMapElement pixelMapElement = null; - try { - pixelMapElement = new PixelMapElement(mImageAddPen.getResourceManager() - .getResource(ResourceTable.Media_brush2)); - } catch (IOException e) { - e.printStackTrace(); - } catch (NotExistException e) { - e.printStackTrace(); - } - mImageAddPen.setBackground(pixelMapElement); - animatorPropertyAddPen.rotate(180).setDuration(300); - animatorPropertyAddPen.start(); - } + initOpen(); initAddPen(); if (pos == 0) { @@ -382,7 +331,8 @@ public class MainAbilitySlice extends AbilitySlice { isDelete = false; isYellow = false; isFourTopSize = "0"; - DirectionalLayout toastLayout = (DirectionalLayout) LayoutScatter.getInstance(component.getContext()).parse(ResourceTable.Layout_layout_toast_dia, null, false); + DirectionalLayout toastLayout = (DirectionalLayout) LayoutScatter.getInstance(component.getContext()) + .parse(ResourceTable.Layout_layout_toast_dia, null, false); new ToastDialog(getContext()) .setContentCustomComponent(toastLayout) .setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT) @@ -468,7 +418,7 @@ public class MainAbilitySlice extends AbilitySlice { Operation openOption = new Intent.OperationBuilder() .withDeviceId("") .withBundleName("com.leinardi.ohos.speeddial.sample") - .withAbilityName("com.leinardi.ohos.speeddial.sample.UseCasesActivityAblity") + .withAbilityName("com.leinardi.ohos.speeddial.sample.UseCasesAbilityAblity") .build(); intent.setOperation(openOption); startAbility(intent); @@ -566,294 +516,389 @@ public class MainAbilitySlice extends AbilitySlice { if (FastClickUtil.isFastClick()) { return; } - basePopupView = new XPopup.Builder(getContext()) - .atView(component) - .hasShadowBg(false) // 去掉半透明背景 - .asCustom(new CustomAttachDialogFive(getContext(), - new CustomAttachDialogFive.CustomAttachDialogListener() { - @Override - public void onClick(Component component) { - switch (component.getId()) { - case ResourceTable.Id_dl_main_fab: - showFive(component); - break; - case ResourceTable.Id_dl_toggle_list: - if (isShow) { - isShow = false; - mListContainer.setVisibility(Component.HIDE); - } else { - isShow = true; - mListContainer.setVisibility(Component.VISIBLE); + basePopupView = new XPopup.Builder(getContext()).atView(component).hasShadowBg(false).asCustom( + new CustomAttachDialogFive(getContext(), new CustomAttachDialogFive.CustomAttachDialogListener() { + @Override + public void onClick(Component component) { + switch (component.getId()) { + case ResourceTable.Id_dl_main_fab: + showFive(component); + break; + case ResourceTable.Id_dl_toggle_list: + if (isShow) { + isShow = false; + mListContainer.setVisibility(Component.HIDE); + } else { + isShow = true; + mListContainer.setVisibility(Component.VISIBLE); + } + break; + case ResourceTable.Id_dl_reverse_animation: + break; + case ResourceTable.Id_dl_add_action: + if (isBank) { + topNumSize += 1; + if (isTowShow) { + listCircle = new ArrayList<>(); + isTowShow = false; + } + listCircle.add(new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); + if (!isAddFloat) { + mListContainerCircleLeft.setVisibility(Component.HIDE); + mListContainerCircleTop.setVisibility(Component.HIDE); + mListContainerCircleRight.setVisibility(Component.HIDE); + mListContainerCircleBottom.setVisibility(Component.HIDE); + } else { + if (pos == 0) { + initAddTop(); + } else if (pos == 1) { + initAddLeft(); + } else if (pos == 2) { + initAddBottom(); + } else if (pos == 3) { + initAddRight(); + } + } + } else { + initAddElse(); + } + break; + //remove action + case ResourceTable.Id_dl_remove_action: + if (isBank) { + if (listCircle != null && listCircle.size() != 0) { + listCircle.remove(0); + } + initRemove(); + } else { + topNumSize -= 1; + if (isTop) { + if (listCircle.size() != 0) { + initTopRemove(); + } + } else if (isLeft) { + if (listCircle.size() != 0) { + initLeftRemove(); } - break; - case ResourceTable.Id_dl_reverse_animation: - break; - case ResourceTable.Id_dl_add_action: - if (isBank) { - topNumSize += 1; - if (isTowShow) { - listCircle = new ArrayList<>(); - isTowShow = false; - } - listCircle.add(new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); - if (!isAddFloat) { - mListContainerCircleLeft.setVisibility(Component.HIDE); - mListContainerCircleTop.setVisibility(Component.HIDE); - mListContainerCircleRight.setVisibility(Component.HIDE); - mListContainerCircleBottom.setVisibility(Component.HIDE); - } else { - if (pos == 0) { - mListContainerCircleLeft.setVisibility(Component.HIDE); - mListContainerCircleTop.setVisibility(Component.VISIBLE); - mListContainerCircleRight.setVisibility(Component.HIDE); - mListContainerCircleBottom.setVisibility(Component.HIDE); - isLeft = false; - isTop = true; - isRight = false; - isBottom = false; - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "top"); - mListContainerCircleTop.setItemProvider(mListItemProviderCircle); - mListContainerCircleTop.setOrientation(Component.VERTICAL); - } else if (pos == 1) { - mListContainerCircleLeft.setVisibility(Component.VISIBLE); - mListContainerCircleTop.setVisibility(Component.HIDE); - mListContainerCircleRight.setVisibility(Component.HIDE); - mListContainerCircleBottom.setVisibility(Component.HIDE); - isLeft = true; - isTop = false; - isRight = false; - isBottom = false; - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "left"); - mListContainerCircleLeftTwo.setItemProvider(mListItemProviderCircle); - mListContainerCircleLeftTwo.setOrientation(Component.HORIZONTAL); - if (listCircle.size() == 5) { - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx( - MainAbilitySlice.this) - 370); - } else if (listCircle.size() == 6) { - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this), getDisplayHeightInPx(MainAbilitySlice.this) - 370); - } - } else if (pos == 2) { - mListContainerCircleLeft.setVisibility(Component.HIDE); - mListContainerCircleTop.setVisibility(Component.HIDE); - mListContainerCircleRight.setVisibility(Component.HIDE); - mListContainerCircleBottom.setVisibility(Component.VISIBLE); - isLeft = false; - isTop = false; - isRight = false; - isBottom = true; - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "bottom"); - mListContainerCircleBottom.setItemProvider(mListItemProviderCircle); - mListContainerCircleBottom.setOrientation(Component.VERTICAL); - } else if (pos == 3) { - mListContainerCircleLeft.setVisibility(Component.HIDE); - mListContainerCircleTop.setVisibility(Component.HIDE); - mListContainerCircleRight.setVisibility(Component.VISIBLE); - mListContainerCircleBottom.setVisibility(Component.HIDE); - isLeft = false; - isTop = false; - isRight = true; - isBottom = false; - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "right"); - mListContainerCircleRight.setItemProvider(mListItemProviderCircle); - mListContainerCircleRight.setOrientation(Component.HORIZONTAL); - } - } - } else { - if (topNumSize == 6) { - topNumSize += 1; - } - topNumSize += 1; - if (isTop) { - listCircle.add(0, new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); - } else if (isLeft) { - listCircle.add(0, new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); - } else if (isBottom) { - listCircle.add(listCircle.size(), new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); - } else if (isRight) { - listCircle.add(listCircle.size(), new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); - } - if (listCircle != null) { - mListItemProviderCircle.notifyDataChanged(); - } + } else if (isBottom) { + if (listCircle.size() != 0) { + initBottomRemove(); } - break; - //remove action - case ResourceTable.Id_dl_remove_action: - if (isBank) { - if (listCircle != null && listCircle.size() != 0) { - listCircle.remove(0); - } - if (pos == 0) { - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "top"); - mListContainerCircleTop.setItemProvider(mListItemProviderCircle); - mListContainerCircleTop.setOrientation(Component.VERTICAL); - } else if (pos == 1) { - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "left"); - mListContainerCircleLeftTwo.setItemProvider(mListItemProviderCircle); - mListContainerCircleLeftTwo.setOrientation(Component.HORIZONTAL); - } else if (pos == 2) { - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "bottom"); - mListContainerCircleBottom.setItemProvider(mListItemProviderCircle); - mListContainerCircleBottom.setOrientation(Component.VERTICAL); - } else if (pos == 3) { - mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "right"); - mListContainerCircleRight.setItemProvider(mListItemProviderCircle); - mListContainerCircleRight.setOrientation(Component.HORIZONTAL); - } - } else { - topNumSize -= 1; - if (isTop) { - if (listCircle.size() != 0) { - if (listCircle.get(0).getId() == 6 && isDouble) { - isDouble = true; - isDelete = false; - } else if (listCircle.get(0).getId() == 6 && !isDouble) { - isDouble = false; - isDelete = false; - } else if (listCircle.get(0).getId() == 5) { - isDouble = false; - isDelete = false; - isYellow = false; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 4) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 3) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 2) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 1) { - topNumSize = 8; - } - listCircle.remove(0); - } - } else if (isLeft) { - if (listCircle.size() != 0) { - if (listCircle.get(0).getId() == 6 && isDouble) { - isDouble = true; - isDelete = false; - } else if (listCircle.get(0).getId() == 6 && !isDouble) { - isDouble = false; - isDelete = false; - } else if (listCircle.get(0).getId() == 5) { - isDouble = false; - isDelete = false; - isYellow = false; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 4) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 3) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 2) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 1) { - topNumSize = 8; - } - listCircle.remove(0); - if (listCircle.size() == 5) { - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 200, getDisplayHeightInPx(MainAbilitySlice.this) - 370); - } else if (listCircle.size() == 6) { - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx(MainAbilitySlice.this) - 370); - } - } - } else if (isBottom) { - if (listCircle.size() != 0) { - if (listCircle.get(0).getId() == 6 && isDouble) { - isDouble = true; - isDelete = false; - } else if (listCircle.get(0).getId() == 6 && !isDouble) { - isDouble = false; - isDelete = false; - } else if (listCircle.get(0).getId() == 5) { - isDouble = false; - isDelete = false; - isYellow = false; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 4) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 3) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 2) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 1) { - topNumSize = 8; - } - listCircle.remove(listCircle.size() - 1); - } - } else if (isRight) { - if (listCircle.size() != 0) { - if (listCircle.get(0).getId() == 6 && isDouble) { - isDouble = true; - isDelete = false; - } else if (listCircle.get(0).getId() == 6 && !isDouble) { - isDouble = false; - isDelete = false; - } else if (listCircle.get(0).getId() == 5) { - isDouble = false; - isDelete = false; - isYellow = false; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 4) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 3) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 2) { - isDouble = true; - isDelete = true; - isYellow = true; - topNumSize = 8; - } else if (listCircle.get(0).getId() == 1) { - topNumSize = 8; - } - listCircle.remove(listCircle.size() - 1); - } - } - if (listCircle != null) { - mListItemProviderCircle.notifyDataChanged(); - } + } else if (isRight) { + if (listCircle.size() != 0) { + initRightRemove(); } - break; + } + if (listCircle != null) { + mListItemProviderCircle.notifyDataChanged(); + } } - basePopupView.dismiss(); - } - })); + break; + } + basePopupView.dismiss(); + } + })); basePopupView.show(); } }); } + private void initRemove() { + if (pos == 0) { + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "top"); + mListContainerCircleTop.setItemProvider(mListItemProviderCircle); + mListContainerCircleTop.setOrientation(Component.VERTICAL); + } else if (pos == 1) { + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "left"); + mListContainerCircleLeftTwo.setItemProvider(mListItemProviderCircle); + mListContainerCircleLeftTwo.setOrientation(Component.HORIZONTAL); + } else if (pos == 2) { + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "bottom"); + mListContainerCircleBottom.setItemProvider(mListItemProviderCircle); + mListContainerCircleBottom.setOrientation(Component.VERTICAL); + } else if (pos == 3) { + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "right"); + mListContainerCircleRight.setItemProvider(mListItemProviderCircle); + mListContainerCircleRight.setOrientation(Component.HORIZONTAL); + } + } + + private void initRightRemove() { + if (listCircle.get(0).getId() == 6 && isDouble) { + isDouble = true; + isDelete = false; + } else if (listCircle.get(0).getId() == 6 && !isDouble) { + isDouble = false; + isDelete = false; + } else if (listCircle.get(0).getId() == 5) { + isDouble = false; + isDelete = false; + isYellow = false; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 4) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 3) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 2) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 1) { + topNumSize = 8; + } + listCircle.remove(listCircle.size() - 1); + } + + private void initBottomRemove() { + if (listCircle.get(0).getId() == 6 && isDouble) { + isDouble = true; + isDelete = false; + } else if (listCircle.get(0).getId() == 6 && !isDouble) { + isDouble = false; + isDelete = false; + } else if (listCircle.get(0).getId() == 5) { + isDouble = false; + isDelete = false; + isYellow = false; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 4) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 3) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 2) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 1) { + topNumSize = 8; + } + listCircle.remove(listCircle.size() - 1); + } + + private void initLeftRemove() { + if (listCircle.get(0).getId() == 6 && isDouble) { + isDouble = true; + isDelete = false; + } else if (listCircle.get(0).getId() == 6 && !isDouble) { + isDouble = false; + isDelete = false; + } else if (listCircle.get(0).getId() == 5) { + isDouble = false; + isDelete = false; + isYellow = false; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 4) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 3) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 2) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 1) { + topNumSize = 8; + } + listCircle.remove(0); + if (listCircle.size() == 5) { + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 200, + getDisplayHeightInPx(MainAbilitySlice.this) - 370); + } else if (listCircle.size() == 6) { + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, + getDisplayHeightInPx(MainAbilitySlice.this) - 370); + } + } + + private void initTopRemove() { + if (listCircle.get(0).getId() == 6 && isDouble) { + isDouble = true; + isDelete = false; + } else if (listCircle.get(0).getId() == 6 && !isDouble) { + isDouble = false; + isDelete = false; + } else if (listCircle.get(0).getId() == 5) { + isDouble = false; + isDelete = false; + isYellow = false; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 4) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 3) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 2) { + isDouble = true; + isDelete = true; + isYellow = true; + topNumSize = 8; + } else if (listCircle.get(0).getId() == 1) { + topNumSize = 8; + } + listCircle.remove(0); + } + + private void initAddElse() { + if (topNumSize == 6) { + topNumSize += 1; + } + topNumSize += 1; + if (isTop) { + listCircle.add(0, new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); + } else if (isLeft) { + listCircle.add(0, new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); + } else if (isBottom) { + listCircle.add(listCircle.size(), new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); + } else if (isRight) { + listCircle.add(listCircle.size(), new ListBeanCircle(topNumSize, ResourceTable.Media_nine, "")); + } + if (listCircle != null) { + mListItemProviderCircle.notifyDataChanged(); + } + } + + private void initAddRight() { + mListContainerCircleLeft.setVisibility(Component.HIDE); + mListContainerCircleTop.setVisibility(Component.HIDE); + mListContainerCircleRight.setVisibility(Component.VISIBLE); + mListContainerCircleBottom.setVisibility(Component.HIDE); + isLeft = false; + isTop = false; + isRight = true; + isBottom = false; + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "right"); + mListContainerCircleRight.setItemProvider(mListItemProviderCircle); + mListContainerCircleRight.setOrientation(Component.HORIZONTAL); + } + + private void initAddBottom() { + mListContainerCircleLeft.setVisibility(Component.HIDE); + mListContainerCircleTop.setVisibility(Component.HIDE); + mListContainerCircleRight.setVisibility(Component.HIDE); + mListContainerCircleBottom.setVisibility(Component.VISIBLE); + isLeft = false; + isTop = false; + isRight = false; + isBottom = true; + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "bottom"); + mListContainerCircleBottom.setItemProvider(mListItemProviderCircle); + mListContainerCircleBottom.setOrientation(Component.VERTICAL); + } + + private void initAddLeft() { + mListContainerCircleLeft.setVisibility(Component.VISIBLE); + mListContainerCircleTop.setVisibility(Component.HIDE); + mListContainerCircleRight.setVisibility(Component.HIDE); + mListContainerCircleBottom.setVisibility(Component.HIDE); + isLeft = true; + isTop = false; + isRight = false; + isBottom = false; + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "left"); + mListContainerCircleLeftTwo.setItemProvider(mListItemProviderCircle); + mListContainerCircleLeftTwo.setOrientation(Component.HORIZONTAL); + if (listCircle.size() == 5) { + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx( + MainAbilitySlice.this) - 370); + } else if (listCircle.size() == 6) { + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this), getDisplayHeightInPx( + MainAbilitySlice.this) - 370); + } + } + + private void initAddTop() { + mListContainerCircleLeft.setVisibility(Component.HIDE); + mListContainerCircleTop.setVisibility(Component.VISIBLE); + mListContainerCircleRight.setVisibility(Component.HIDE); + mListContainerCircleBottom.setVisibility(Component.HIDE); + isLeft = false; + isTop = true; + isRight = false; + isBottom = false; + mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "top"); + mListContainerCircleTop.setItemProvider(mListItemProviderCircle); + mListContainerCircleTop.setOrientation(Component.VERTICAL); + } + + private void initOpen() { + isOrange = true; + isDelete = false; + isYellow = false; + isFourTopSize = "0"; + isAddFloat = true; + mListContainer.setEnabled(false); + mImageAdd.setVisibility(Component.HIDE); + mImageAddPen.setVisibility(Component.VISIBLE); + if (posDegree == 0) { + mImageAdd.setWidth(90); + mImageAdd.setHeight(90); + animatorPropertyAddPen.rotate(45).setDuration(10); + animatorPropertyAddPen.start(); + } else if (posDegree == 1) { + animatorPropertyAdd.rotate(0).setDuration(1); + animatorPropertyAdd.start(); + mImageAdd.setWidth(90); + mImageAdd.setHeight(90); + animatorPropertyAddPen.rotate(45).setDuration(300); + animatorPropertyAddPen.start(); + } else if (posDegree == 2) { + animatorPropertyAdd.rotate(-45).setDuration(1); + animatorPropertyAdd.start(); + PixelMapElement pixelMapElement = null; + try { + pixelMapElement = new PixelMapElement(mImageAddPen.getResourceManager() + .getResource(ResourceTable.Media_brush1)); + } catch (IOException e) { + e.printStackTrace(); + } catch (NotExistException e) { + e.printStackTrace(); + } + mImageAddPen.setBackground(pixelMapElement); + animatorPropertyAddPen.rotate(90).setDuration(300); + animatorPropertyAddPen.start(); + } else if (posDegree == 3) { + animatorPropertyAdd.rotate(-45).setDuration(1); + animatorPropertyAdd.start(); + + PixelMapElement pixelMapElement = null; + try { + pixelMapElement = new PixelMapElement(mImageAddPen.getResourceManager() + .getResource(ResourceTable.Media_brush2)); + } catch (IOException e) { + e.printStackTrace(); + } catch (NotExistException e) { + e.printStackTrace(); + } + mImageAddPen.setBackground(pixelMapElement); + animatorPropertyAddPen.rotate(180).setDuration(300); + animatorPropertyAddPen.start(); + } + } + private void initIsTop() { mListContainerCircleLeft.setVisibility(Component.HIDE); mListContainerCircleTop.setVisibility(Component.VISIBLE); @@ -871,7 +916,8 @@ public class MainAbilitySlice extends AbilitySlice { MainAbilitySlice.this, "top"); mListContainerCircleTop.setItemProvider(mListItemProviderCircle); mListContainerCircleTop.setOrientation(Component.VERTICAL); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, getDisplayHeightInPx(MainAbilitySlice.this) - 350); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, + getDisplayHeightInPx(MainAbilitySlice.this) - 350); } @@ -916,7 +962,8 @@ public class MainAbilitySlice extends AbilitySlice { mListItemProviderCircle = new ListItemProviderCircle(listCircle, MainAbilitySlice.this, "bottom"); mListContainerCircleBottom.setItemProvider(mListItemProviderCircle); mListContainerCircleBottom.setOrientation(Component.VERTICAL); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - vp2px(context, 90), getDisplayHeightInPx(MainAbilitySlice.this) - vp2px(context, 600)); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - vp2px(context, 90), + getDisplayHeightInPx(MainAbilitySlice.this) - vp2px(context, 600)); } private void initIsRight() { @@ -1179,7 +1226,8 @@ public class MainAbilitySlice extends AbilitySlice { } private void initThreeLeft(Component component) { - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, getDisplayHeightInPx(MainAbilitySlice.this) - 370); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, getDisplayHeightInPx( + MainAbilitySlice.this) - 370); mListContainerCircleLeft.setContentPosition(20, getDisplayHeightInPx(MainAbilitySlice.this) - 360); dlDialogText.setText("Lorem ipsum dolor sit amet, consectetur"); top_dl_dialog_texttwo.setText("adipiscing elit, sed do eiusmod tempor inci......"); @@ -1190,7 +1238,8 @@ public class MainAbilitySlice extends AbilitySlice { @Override public void run() { dlDialog.setVisibility(Component.HIDE); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, getDisplayHeightInPx(MainAbilitySlice.this) - 270); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, getDisplayHeightInPx( + MainAbilitySlice.this) - 270); mListContainerCircleLeft.setContentPosition(20, getDisplayHeightInPx(MainAbilitySlice.this) - 260); } }, 2000); @@ -1202,13 +1251,15 @@ public class MainAbilitySlice extends AbilitySlice { isYellow = true; isDelete = false; listCircle.add(position, new ListBeanCircle(5, ResourceTable.Media_six, "Replace action")); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx(MainAbilitySlice.this) - 370); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx( + MainAbilitySlice.this) - 370); } else if (!isYellow) { isDouble = true; isYellow = true; isDelete = true; listCircle.add(position, new ListBeanCircle(5, ResourceTable.Media_six, "Replace action")); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this), getDisplayHeightInPx(MainAbilitySlice.this) - 370); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this), getDisplayHeightInPx( + MainAbilitySlice.this) - 370); } } @@ -1217,7 +1268,8 @@ public class MainAbilitySlice extends AbilitySlice { isYellow = true; isDelete = false; listCircle.remove(listCircle.get(position)); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx(MainAbilitySlice.this) - 370); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx( + MainAbilitySlice.this) - 370); } else if (isYellow) { isYellow = false; isDelete = false; @@ -1227,7 +1279,8 @@ public class MainAbilitySlice extends AbilitySlice { isDelete = false; isDouble = false; listCircle.remove(listCircle.get(position)); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 200, getDisplayHeightInPx(MainAbilitySlice.this) - 370); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 200, getDisplayHeightInPx( + MainAbilitySlice.this) - 370); } } @@ -1236,7 +1289,8 @@ public class MainAbilitySlice extends AbilitySlice { isYellow = true; isDelete = false; listCircle.remove(listCircle.get(position)); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx(MainAbilitySlice.this) - 370); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 70, getDisplayHeightInPx( + MainAbilitySlice.this) - 370); } else if (isYellow) { isYellow = false; isDelete = false; @@ -1246,7 +1300,8 @@ public class MainAbilitySlice extends AbilitySlice { isDelete = false; isDouble = false; listCircle.remove(listCircle.get(position)); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 200, getDisplayHeightInPx(MainAbilitySlice.this) - 370); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 200, getDisplayHeightInPx( + MainAbilitySlice.this) - 370); } } @@ -1344,7 +1399,8 @@ public class MainAbilitySlice extends AbilitySlice { } private void initSenverBottom(Component component) { - DirectionalLayout toastLayout = (DirectionalLayout) LayoutScatter.getInstance(component.getContext()).parse(ResourceTable.Layout_layout_toast_eight, null, false); + DirectionalLayout toastLayout = (DirectionalLayout) LayoutScatter.getInstance(component.getContext()) + .parse(ResourceTable.Layout_layout_toast_eight, null, false); new ToastDialog(getContext()) .setContentCustomComponent(toastLayout) .setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT, @@ -1360,7 +1416,8 @@ public class MainAbilitySlice extends AbilitySlice { private void initOneHide() { mListContainer.setEnabled(true); - mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, getDisplayHeightInPx(MainAbilitySlice.this) - 350); + mDSOne.setContentPosition(getDisplayWidthInPx(MainAbilitySlice.this) - 260, getDisplayHeightInPx( + MainAbilitySlice.this) - 350); mListContainerCircleTop.setVisibility(Component.VERTICAL); mListContainerCircleBottom.setVisibility(Component.VERTICAL); mListContainerCircleLeft.setVisibility(Component.VERTICAL); @@ -1457,69 +1514,70 @@ public class MainAbilitySlice extends AbilitySlice { .isDestroyOnDismiss(true) .atView(component) .hasShadowBg(false) - .asCustom(new CustomAttachDialogFiveItemOpen(getContext(), new CustomAttachDialogFiveItemOpen.CustomAttachDialogFiveItemListener() { - @Override - public void onClick(Component component) { - switch (component.getId()) { - case ResourceTable.Id_tv_primary: - if (isAddFloat) { - colorIsShow = 1; - shapeElement.setRgbColor(new RgbColor(66, 133, 244)); - mDSOne.setBackground(shapeElement); - } else { - colorIsShow = 1; - } - break; - case ResourceTable.Id_tv_orange: - if (isAddFloat) { - colorIsShow = 2; - shapeElement.setRgbColor(new RgbColor(255, 109, 0)); - mDSOne.setBackground(shapeElement); - } else { - colorIsShow = 2; - } - break; - - case ResourceTable.Id_tv_purple: - if (isAddFloat) { - colorIsShow = 3; - shapeElement.setRgbColor(new RgbColor(170, 0, 255)); - mDSOne.setBackground(shapeElement); - } else { - colorIsShow = 3; - } - break; - case ResourceTable.Id_tv_while: - if (isAddFloat) { - colorIsShow = 4; - shapeElement.setRgbColor(new RgbColor(255, 255, 255)); - shapeElement.setStroke(1, new RgbColor(204, 204, 204)); - mDSOne.setBackground(shapeElement); - } else { - colorIsShow = 4; - } - break; - case ResourceTable.Id_tv_none: - if (isAddFloat) { - colorIsShow = 5; - PixelMapElement pixelMapElement = null; - try { - pixelMapElement = new PixelMapElement(mDSOne.getResourceManager() - .getResource(ResourceTable.Media_yy)); - } catch (IOException e) { - e.printStackTrace(); - } catch (NotExistException e) { - e.printStackTrace(); - } - mDSOne.setBackground(pixelMapElement); - } else { - colorIsShow = 5; + .asCustom(new CustomAttachDialogFiveItemOpen(getContext(), + new CustomAttachDialogFiveItemOpen.CustomAttachDialogFiveItemListener() { + @Override + public void onClick(Component component) { + switch (component.getId()) { + case ResourceTable.Id_tv_primary: + if (isAddFloat) { + colorIsShow = 1; + shapeElement.setRgbColor(new RgbColor(66, 133, 244)); + mDSOne.setBackground(shapeElement); + } else { + colorIsShow = 1; + } + break; + case ResourceTable.Id_tv_orange: + if (isAddFloat) { + colorIsShow = 2; + shapeElement.setRgbColor(new RgbColor(255, 109, 0)); + mDSOne.setBackground(shapeElement); + } else { + colorIsShow = 2; + } + break; + + case ResourceTable.Id_tv_purple: + if (isAddFloat) { + colorIsShow = 3; + shapeElement.setRgbColor(new RgbColor(170, 0, 255)); + mDSOne.setBackground(shapeElement); + } else { + colorIsShow = 3; + } + break; + case ResourceTable.Id_tv_while: + if (isAddFloat) { + colorIsShow = 4; + shapeElement.setRgbColor(new RgbColor(255, 255, 255)); + shapeElement.setStroke(1, new RgbColor(204, 204, 204)); + mDSOne.setBackground(shapeElement); + } else { + colorIsShow = 4; + } + break; + case ResourceTable.Id_tv_none: + if (isAddFloat) { + colorIsShow = 5; + PixelMapElement pixelMapElement = null; + try { + pixelMapElement = new PixelMapElement(mDSOne.getResourceManager() + .getResource(ResourceTable.Media_yy)); + } catch (IOException e) { + e.printStackTrace(); + } catch (NotExistException e) { + e.printStackTrace(); + } + mDSOne.setBackground(pixelMapElement); + } else { + colorIsShow = 5; + } + break; } - break; - } - basePopupViewItemOpen.dismiss(); - } - })); + basePopupViewItemOpen.dismiss(); + } + })); basePopupViewItemOpen.show(); } @@ -1597,7 +1655,8 @@ public class MainAbilitySlice extends AbilitySlice { /** * 获取屏幕宽度 * - * @return getDisplayWidthInPx + * @param context context + * @return 屏幕宽带 */ public static int getDisplayWidthInPx(Context context) { Display display = DisplayManager.getInstance().getDefaultDisplay(context).get(); @@ -1607,7 +1666,8 @@ public class MainAbilitySlice extends AbilitySlice { /** * 获取屏幕高度,不包含状态栏的高度 * - * @return getDisplayHeightInPx + * @param context context + * @return 屏幕高度 */ public static int getDisplayHeightInPx(Context context) { Display display = DisplayManager.getInstance().getDefaultDisplay(context).get(); diff --git a/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/UseCasesActivitySlice.java b/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/UseCasesAbilitySlice.java similarity index 91% rename from entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/UseCasesActivitySlice.java rename to entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/UseCasesAbilitySlice.java index 966868d..b5a0a0e 100644 --- a/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/UseCasesActivitySlice.java +++ b/entry/src/main/java/com/leinardi/ohos/speeddial/sample/slice/UseCasesAbilitySlice.java @@ -25,17 +25,15 @@ import ohos.agp.components.*; import ohos.agp.components.element.ShapeElement; import ohos.agp.components.element.VectorElement; import ohos.agp.utils.Color; -import ohos.agp.window.service.Display; -import ohos.agp.window.service.DisplayManager; import ohos.agp.window.service.WindowManager; import ohos.app.Context; /** - * UseCasesActivitySlice + * UseCasesAbilitySlice * * @since 2021-06-29 */ -public class UseCasesActivitySlice extends AbilitySlice { +public class UseCasesAbilitySlice extends AbilitySlice { private Image mImageAdd; private DependentLayout mDSThree; private DependentLayout mDSOne; @@ -84,7 +82,7 @@ public class UseCasesActivitySlice extends AbilitySlice { private void initListeners() { AnimatorTopOver(); - mImageAdd.setImageElement(new VectorElement(UseCasesActivitySlice.this, ResourceTable.Graphic_ic_close_white_24dp)); + mImageAdd.setImageElement(new VectorElement(UseCasesAbilitySlice.this, ResourceTable.Graphic_ic_close_white_24dp)); mDSOne.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { @@ -93,12 +91,12 @@ public class UseCasesActivitySlice extends AbilitySlice { AnimatorTop(); animatorPropertyThree.start(); animatorPropertyThreeTest.start(); - mImageAdd.setImageElement(new VectorElement(UseCasesActivitySlice.this, ResourceTable.Graphic_ic_close_white_24dp)); - imaUseCase.setImageElement(new VectorElement(UseCasesActivitySlice.this, ResourceTable.Graphic_ic_close_white_24dp)); + mImageAdd.setImageElement(new VectorElement(UseCasesAbilitySlice.this, ResourceTable.Graphic_ic_close_white_24dp)); + imaUseCase.setImageElement(new VectorElement(UseCasesAbilitySlice.this, ResourceTable.Graphic_ic_close_white_24dp)); } else { isAddflaot = true; AnimatorTopOver(); - mImageAdd.setImageElement(new VectorElement(UseCasesActivitySlice.this, ResourceTable.Graphic_ic_add_white_24dp)); + mImageAdd.setImageElement(new VectorElement(UseCasesAbilitySlice.this, ResourceTable.Graphic_ic_add_white_24dp)); } } }); -- Gitee