diff --git a/photoview/src/main/java/com/github/chrisbanes/photoview/AdditionalOnTouchListener.java b/photoview/src/main/java/com/github/chrisbanes/photoview/AdditionalOnTouchListener.java new file mode 100644 index 00000000..d371103c --- /dev/null +++ b/photoview/src/main/java/com/github/chrisbanes/photoview/AdditionalOnTouchListener.java @@ -0,0 +1,10 @@ +package com.github.chrisbanes.photoview; + +import android.view.MotionEvent; +import android.view.View; + +public interface AdditionalOnTouchListener { + + boolean onTouch (View view, MotionEvent event); + +} \ No newline at end of file diff --git a/photoview/src/main/java/com/github/chrisbanes/photoview/PhotoViewAttacher.java b/photoview/src/main/java/com/github/chrisbanes/photoview/PhotoViewAttacher.java index 742b15d2..ad4fc1ff 100644 --- a/photoview/src/main/java/com/github/chrisbanes/photoview/PhotoViewAttacher.java +++ b/photoview/src/main/java/com/github/chrisbanes/photoview/PhotoViewAttacher.java @@ -91,6 +91,10 @@ public class PhotoViewAttacher implements View.OnTouchListener, private boolean mZoomEnabled = true; private ScaleType mScaleType = ScaleType.FIT_CENTER; + + //For adding our own onTouchListener + private AdditionalOnTouchListener mAdditionalOnTouchListener; + private OnGestureListener onGestureListener = new OnGestureListener() { @Override public void onDrag(float dx, float dy) { @@ -332,6 +336,10 @@ public ScaleType getScaleType() { return mScaleType; } + public void setAdditionalOnTouchListener (AdditionalOnTouchListener listener) { + this.mAdditionalOnTouchListener = listener; + } + @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { // Update our base matrix, as the bounds have changed @@ -342,6 +350,15 @@ public void onLayoutChange(View v, int left, int top, int right, int bottom, int @Override public boolean onTouch(View v, MotionEvent ev) { + + if (mAdditionalOnTouchListener != null) { + if (mAdditionalOnTouchListener.onTouch(v, ev)) { //It consumed + return true; + } else { + //Continue + } + } + boolean handled = false; if (mZoomEnabled && Util.hasDrawable((ImageView) v)) {