28
28
import android .view .MotionEvent ;
29
29
import android .view .View ;
30
30
import android .view .ViewTreeObserver ;
31
+ import android .view .View .OnLongClickListener ;
31
32
import android .widget .ImageView ;
32
33
import android .widget .ImageView .ScaleType ;
33
34
@@ -105,6 +106,7 @@ private static void setImageViewScaleTypeMatrix(ImageView imageView) {
105
106
private OnMatrixChangedListener mMatrixChangeListener ;
106
107
private OnPhotoTapListener mPhotoTapListener ;
107
108
private OnViewTapListener mViewTapListener ;
109
+ private OnLongClickListener mLongClickListener ;
108
110
109
111
private int mIvTop , mIvRight , mIvBottom , mIvLeft ;
110
112
private FlingRunnable mCurrentFlingRunnable ;
@@ -129,7 +131,17 @@ public PhotoViewAttacher(ImageView imageView) {
129
131
mScaleDragDetector = VersionedGestureDetector .newInstance (imageView .getContext (), this );
130
132
131
133
mGestureDetector = new GestureDetector (imageView .getContext (),
132
- new GestureDetector .SimpleOnGestureListener ());
134
+ new GestureDetector .SimpleOnGestureListener () {
135
+
136
+ // forward long click listener
137
+ @ Override
138
+ public void onLongPress (MotionEvent e ) {
139
+ super .onLongPress (e );
140
+
141
+ if (mLongClickListener != null ) {
142
+ mLongClickListener .onLongClick (mImageView .get ());
143
+ }
144
+ }});
133
145
mGestureDetector .setOnDoubleTapListener (this );
134
146
135
147
// Finally, update the UI so that we're zoomable
@@ -395,6 +407,16 @@ public final boolean onTouch(View v, MotionEvent ev) {
395
407
return handled ;
396
408
}
397
409
410
+ /**
411
+ * Register a callback to be invoked when the Photo displayed by this view is long-pressed.
412
+ *
413
+ * @param listener
414
+ * - Listener to be registered.
415
+ */
416
+ public final void setOnLongClickListener (OnLongClickListener listener ) {
417
+ mLongClickListener = listener ;
418
+ }
419
+
398
420
/**
399
421
* Register a callback to be invoked when the Matrix has changed for this
400
422
* View. An example would be the user panning or scaling the Photo.
0 commit comments