From a55ceac516ee65df0ce19ca9dfa0671b1810dd10 Mon Sep 17 00:00:00 2001 From: 17351781990 <827990754@qq.com> Date: Tue, 27 Apr 2021 18:46:12 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=91=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98=EF=BC=9A?= =?UTF-8?q?1=E3=80=81=E4=B8=89=E6=8C=87=E5=88=87=E6=8D=A2=E5=8F=8C?= =?UTF-8?q?=E6=8C=87=E5=AF=BC=E8=87=B4=E5=9B=BE=E7=89=87=E6=94=BE=E5=A4=A7?= =?UTF-8?q?=E9=97=AA=E5=8A=A8=E9=97=AE=E9=A2=98=EF=BC=9B2=E3=80=81?= =?UTF-8?q?=E5=BF=AB=E9=80=9F=E6=BB=91=E5=8A=A8=E6=97=B6=E8=AF=AF=E8=A7=A6?= =?UTF-8?q?=E7=A2=B0double=E4=BA=8B=E4=BB=B6=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/slice/SingleAbilitySlice.java | 9 ----- .../me/relex/photodraweeview/PhotoView.java | 37 +++++++++++++++++-- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/entry/src/main/java/com/me/relex/photodraweeview/sample/slice/SingleAbilitySlice.java b/entry/src/main/java/com/me/relex/photodraweeview/sample/slice/SingleAbilitySlice.java index 8998415..0f6b64d 100644 --- a/entry/src/main/java/com/me/relex/photodraweeview/sample/slice/SingleAbilitySlice.java +++ b/entry/src/main/java/com/me/relex/photodraweeview/sample/slice/SingleAbilitySlice.java @@ -40,7 +40,6 @@ import java.text.DecimalFormat; public class SingleAbilitySlice extends AbilitySlice implements Component.ClickedListener, Component.LongClickedListener, Component.TouchEventListener, - Component.DoubleClickedListener, CustomTitle.MenuItemClickedListener { private static final float STEP_PHOTO_VIEW_FRAME = 0.25f; private static final int TOAST_SHOW_DURATION = 2 * 1000; @@ -103,7 +102,6 @@ public class SingleAbilitySlice extends AbilitySlice implements Component.Clicke mContentLayout.setAlignment(LayoutAlignment.CENTER); mContentLayout.setClickedListener(this); mContentLayout.setLongClickedListener(this); - mContentLayout.setDoubleClickedListener(this); mContentLayout.setTouchEventListener(this); mDependentLayout.addComponent(mContentLayout); @@ -210,13 +208,6 @@ public class SingleAbilitySlice extends AbilitySlice implements Component.Clicke } } - @Override - public void onDoubleClick(Component component) { - if (mPosition == 0 || mPosition == 4) { - mPhotoViewFrame.doubleClick(); - } - } - private void startViewPager() { Intent intentViewPager = new Intent(); Operation operationViewPager = new Intent.OperationBuilder() diff --git a/photodraweeview/src/main/java/com/me/relex/photodraweeview/PhotoView.java b/photodraweeview/src/main/java/com/me/relex/photodraweeview/PhotoView.java index 3b76007..972d810 100644 --- a/photodraweeview/src/main/java/com/me/relex/photodraweeview/PhotoView.java +++ b/photodraweeview/src/main/java/com/me/relex/photodraweeview/PhotoView.java @@ -78,8 +78,26 @@ public class PhotoView extends Image implements Component.TouchEventListener, Co */ private long mMoveErrorTimeMillis = 0; + /** + * down touch 时间点 + */ private long mDownTimeMillis = 0; + /** + * up touch 时间点 + */ + private long mUpTimeMillis = 0; + + /** + * 惯性加速度的时间点 + */ + private long mInertiaTimeMillis = 0; + + /** + * 是否是三指或者三指以上操作 + */ + private boolean isMultiFinger = false; + /** * 当前手指的触碰事件,0:未触碰;1:单指;2:双指; */ @@ -207,6 +225,7 @@ public class PhotoView extends Image implements Component.TouchEventListener, Co baseValue = 0; mLastMoveValue = -1; mCurrentPointer = 0; + isMultiFinger = false; mDownTimeMillis = System.currentTimeMillis(); startX = touchEvent.getPointerScreenPosition(0).getX(); startY = touchEvent.getPointerScreenPosition(0).getY(); @@ -230,8 +249,10 @@ public class PhotoView extends Image implements Component.TouchEventListener, Co if (touchEvent.getPointerCount() == 1 && mCurrentPointer == 1) { // 单指操作 singlePointerMove(touchEvent); - } else if (touchEvent.getPointerCount() == 2 && mCurrentPointer == 2) { + } else if (touchEvent.getPointerCount() == 2 && mCurrentPointer == 2 && !isMultiFinger) { doublePointerMove(component, touchEvent); + } else if (touchEvent.getPointerCount() >= 3){ + isMultiFinger = true; } break; default: @@ -274,6 +295,15 @@ public class PhotoView extends Image implements Component.TouchEventListener, Co float moveX = touchEvent.getPointerScreenPosition(0).getX() - startX; float moveY = touchEvent.getPointerScreenPosition(0).getY() - startY; + + if (System.currentTimeMillis() - mUpTimeMillis < 200 && + System.currentTimeMillis() - mInertiaTimeMillis > 200 && + (Math.abs(moveX) < 100 || Math.abs(moveY) < 100)){ + setScaleImage(component, true); + return; + } + mUpTimeMillis = System.currentTimeMillis(); + if (Math.abs(moveX) > 100 || Math.abs(moveY) > 100) { animationInertia(moveX, moveY); } @@ -427,7 +457,7 @@ public class PhotoView extends Image implements Component.TouchEventListener, Co @Override public void onDoubleClick(Component component) { - setScaleImage(component, true); + } /** @@ -608,7 +638,7 @@ public class PhotoView extends Image implements Component.TouchEventListener, Co * @param component Component */ public void doubleClick(Component component) { - setScaleImage(component, true); + } /** @@ -618,6 +648,7 @@ public class PhotoView extends Image implements Component.TouchEventListener, Co * @param moveY y轴移动 */ private void animationInertia(float moveX, float moveY) { + mInertiaTimeMillis = System.currentTimeMillis(); if (System.currentTimeMillis() - mDownTimeMillis < 200) { int widthBoundary = (int) (getWidth() * (getScaleX() - 1) / 2); int heightBoundary = (int) (getHeight() * (getScaleY() - 1) / 2); -- Gitee From a9952851761b545124e7ce218c94e78b515248c6 Mon Sep 17 00:00:00 2001 From: 17351781990 <827990754@qq.com> Date: Tue, 27 Apr 2021 18:50:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=91=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ README.md | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a4ae4c..1e28e9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.0.4-SNAPSHOT +* modification: Fixed Bug + ## 0.0.3-SNAPSHOT * modification: Update copyright diff --git a/README.md b/README.md index a1cf7e6..4855c57 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ allprojects { 2.在entry模块的build.gradle文件中 ``` dependencies { - implementation('com.gitee.chinasoft_ohos:PhotoDraweeView:0.0.3-SNAPSHOT') + implementation('com.gitee.chinasoft_ohos:PhotoDraweeView:0.0.4-SNAPSHOT') ...... } ``` @@ -108,7 +108,7 @@ CloudTest代码测试无异常 ## 版本迭代 -+ 0.0.3-SNAPSHOT ++ 0.0.4-SNAPSHOT ## 版权和许可信息 + Apache License \ No newline at end of file -- Gitee