In https://github.com/davemorrissey/subsampling-scale-image-view it is possible to assign a custom GestureDetector that works parallel to the gesture functions of the library.
Therefore it is possible to use code like this:
mImageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event){
// detect swipe gestures or any other gesture
}
})
However, this is not possible with PhotoView, since it assigns its own OnTouchListener directly in the PhotoViewAttacher constructor.
I know that there are some helper methods like mAttacher.setOnSingleFlingListener();
or mAttacher.setOnDoubleTapListener();
, but if would be much more convenient if the standard interface could be used.
Is there any plan to solve this issue?
may be you should try this
public class MyPhotoAttacher extends PhotoViewAttacher implements View.OnLongClickListener,View.OnTouchListener {
public MyPhotoAttacher(ImageView imageView) {
super(imageView);
}
@Override
public boolean onLongClick(View v) {
return false;
}
public boolean onTouch(View view, MotionEvent event) {
Log.d("Touch","touch happened -"+event.getAction());
return super.onTouch(view, event);
}
}
Thanks I will try it out
How to use this MyPhotoAttacher?
I extended the PhotoView class and copied all the methods.
If the devs change the class fields and the init method to "protected" maybe it will be simple to extend.
In this case, you can extend the class and override the init method and change the attacher field with your custom PhotoViewAttacher:
`
public class PhotoView {
protected PhotoViewAttacher attacher;
protected ScaleType pendingScaleType;
....
protected void init() {
.....
`
Most helpful comment
How to use this MyPhotoAttacher?