diff --git a/zoomy/src/main/java/com/ablanco/zoomy/ZoomableTouchListener.java b/zoomy/src/main/java/com/ablanco/zoomy/ZoomableTouchListener.java index 059d67f..90ce887 100644 --- a/zoomy/src/main/java/com/ablanco/zoomy/ZoomableTouchListener.java +++ b/zoomy/src/main/java/com/ablanco/zoomy/ZoomableTouchListener.java @@ -67,7 +67,9 @@ public boolean onDoubleTap(MotionEvent e) { private Runnable mEndingZoomAction = new Runnable() { @Override public void run() { - removeFromDecorView(mShadow); + if (mConfig.isShadowEnabled()) { + removeFromDecorView(mShadow); + } removeFromDecorView(mZoomableView); mTarget.setVisibility(View.VISIBLE); mZoomableView = null; @@ -196,10 +198,12 @@ private void startZoomingView(View view) { mZoomableView.setX(mTargetViewCords.x); mZoomableView.setY(mTargetViewCords.y); - if (mShadow == null) mShadow = new View(mTarget.getContext()); - mShadow.setBackgroundResource(0); + if (mConfig.isShadowEnabled()) { + if (mShadow == null) mShadow = new View(mTarget.getContext()); + mShadow.setBackgroundResource(0); + addToDecorView(mShadow); + } - addToDecorView(mShadow); addToDecorView(mZoomableView); //trick for simulating the view is getting out of his parent @@ -222,7 +226,9 @@ public boolean onScale(ScaleGestureDetector detector) { mZoomableView.setScaleX(mScaleFactor); mZoomableView.setScaleY(mScaleFactor); - obscureDecorView(mScaleFactor); + if (mConfig.isShadowEnabled()) { + obscureDecorView(mScaleFactor); + } return true; } diff --git a/zoomy/src/main/java/com/ablanco/zoomy/Zoomy.java b/zoomy/src/main/java/com/ablanco/zoomy/Zoomy.java index 81978a8..4e05bdc 100644 --- a/zoomy/src/main/java/com/ablanco/zoomy/Zoomy.java +++ b/zoomy/src/main/java/com/ablanco/zoomy/Zoomy.java @@ -70,6 +70,13 @@ public Builder enableImmersiveMode(boolean enable) { return this; } + public Builder enableShadow(boolean enable) { + checkNotDisposed(); + if (mConfig == null) mConfig = new ZoomyConfig(); + this.mConfig.setShadowEnabled(enable); + return this; + } + public Builder interpolator(Interpolator interpolator) { checkNotDisposed(); this.mZoomInterpolator = interpolator; diff --git a/zoomy/src/main/java/com/ablanco/zoomy/ZoomyConfig.java b/zoomy/src/main/java/com/ablanco/zoomy/ZoomyConfig.java index 901c508..31b7e14 100644 --- a/zoomy/src/main/java/com/ablanco/zoomy/ZoomyConfig.java +++ b/zoomy/src/main/java/com/ablanco/zoomy/ZoomyConfig.java @@ -9,6 +9,7 @@ public class ZoomyConfig { private boolean zoomAnimationEnabled = true; private boolean immersiveModeEnabled = true; + private boolean shadowEnabled = true; public boolean isZoomAnimationEnabled() { return zoomAnimationEnabled; @@ -25,4 +26,12 @@ public boolean isImmersiveModeEnabled() { public void setImmersiveModeEnabled(boolean immersiveModeEnabled) { this.immersiveModeEnabled = immersiveModeEnabled; } + + public boolean isShadowEnabled() { + return shadowEnabled; + } + + public void setShadowEnabled(boolean shadowEnabled) { + this.shadowEnabled = shadowEnabled; + } }