diff --git a/ImageViewTouch/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java b/ImageViewTouch/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java index ffe0d60..50d2730 100644 --- a/ImageViewTouch/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java +++ b/ImageViewTouch/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java @@ -29,6 +29,7 @@ public class ImageViewTouch extends ImageViewTouchBase { protected boolean mScrollEnabled = true; private OnImageViewTouchDoubleTapListener mDoubleTapListener; private OnImageViewTouchSingleTapListener mSingleTapListener; + private OnImageViewTouchScaleListener mUserScaleListener; public ImageViewTouch ( Context context, AttributeSet attrs ) { super( context, attrs ); @@ -55,6 +56,10 @@ public void setSingleTapListener( OnImageViewTouchSingleTapListener listener ) { mSingleTapListener = listener; } + public void setUserScaleListener( OnImageViewTouchScaleListener listener ) { + mUserScaleListener = listener; + } + public void setDoubleTapEnabled( boolean value ) { mDoubleTapEnabled = value; } @@ -254,6 +259,11 @@ public boolean onScale( ScaleGestureDetector detector ) { float targetScale = getScale() * detector.getScaleFactor(); if ( mScaleEnabled ) { + + if (mUserScaleListener != null) { + mUserScaleListener.onScale(); + } + if( mScaled && span != 0 ) { targetScale = Math.min( getMaxScale(), Math.max( targetScale, getMinScale() - 0.1f ) ); zoomTo( targetScale, detector.getFocusX(), detector.getFocusY() ); @@ -279,4 +289,9 @@ public interface OnImageViewTouchSingleTapListener { void onSingleTapConfirmed(); } + + public interface OnImageViewTouchScaleListener { + void onScale(); + } + }