PhotoView icon indicating copy to clipboard operation
PhotoView copied to clipboard

Allow the use of custom OnTouchListener

Open fkirc opened this issue 8 years ago • 4 comments

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?

fkirc avatar Aug 21 '16 21:08 fkirc

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);
    }

}

akshay-shah avatar Sep 01 '16 13:09 akshay-shah

Thanks I will try it out

fkirc avatar Sep 01 '16 14:09 fkirc

How to use this MyPhotoAttacher?

webserveis avatar Dec 25 '16 11:12 webserveis

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() {
     .....

`

gabdipriolo avatar Dec 30 '19 09:12 gabdipriolo