diff --git a/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java b/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java index f1e6f76..251874a 100644 --- a/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java +++ b/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java @@ -527,7 +527,8 @@ public boolean onTouchEvent(MotionEvent event) { } protected boolean disallowParentTouch(MotionEvent event) { - if ((currentPointerCount > 1 || currentScaleFactor > 1.0f || isAnimating())) { + boolean isTranslatedToEdge = restrictBounds && isScrollToEdge(); + if (currentPointerCount > 1 || (currentScaleFactor > 1.0f && !isTranslatedToEdge) || isAnimating()) { return true; } else { return false; @@ -546,6 +547,11 @@ private boolean isAnimating() { return resetAnimator != null && resetAnimator.isRunning(); } + private boolean isScrollToEdge() { + return bounds.left == 0.0 || bounds.right == getWidth() + || bounds.top == 0.0 || bounds.bottom == getHeight(); + } + /** * Reset the image based on the specified {@link AutoResetMode} mode. */