android source

onSwipeTouchListener

리오파파 2020. 1. 4. 20:09

onSwipeTouchListner.java

package com.urrecliner.markupphoto;

import android.content.Context;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;

import static com.urrecliner.markupphoto.Vars.utils;

public class OnSwipeTouchListener implements View.OnTouchListener {

    private GestureDetector gestureDetector;

    OnSwipeTouchListener(Context c) {
        gestureDetector = new GestureDetector(c, new GestureListener());
    }
    GestureDetector getGestureDetector(){
        return  gestureDetector;
    }
    public boolean onTouch(final View view, final MotionEvent motionEvent) {
        return gestureDetector.onTouchEvent(motionEvent);
    }

    private final class GestureListener extends GestureDetector.SimpleOnGestureListener {

        private static final int SWIPE_THRESHOLD = 200;

        @Override
        public boolean onDown(MotionEvent e) {
            return true;
        }

        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            onClick();
            return super.onSingleTapUp(e);
        }

//        @Override
//        public boolean onDoubleTap(MotionEvent e) {
////            onDoubleClick(e);
//            return super.onDoubleTap(e);
//        }
//
//        @Override
//        public void onLongPress(MotionEvent e) {
//            onLongClick();
//            super.onLongPress(e);
//        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            try {
                float diffX = e1.getX() - e2.getX();
                if (diffX > SWIPE_THRESHOLD)
                    onSwipeNext();
                else if (diffX < -SWIPE_THRESHOLD)
                    onSwipePrev();
            } catch (Exception e) {
                utils.log("1",e.toString());
                e.printStackTrace();
            }
            return false;
        }
    }

    public void onSwipePrev() { }

    public void onSwipeNext() { }

    private void onClick() { }

}

 

 

in your java

 

OnSwipeTouchListener onSwipeTouchListener;
	...

onSwipeTouchListener = new OnSwipeTouchListener(this) {
  @Override
  public void onSwipePrev() {
    if (nowPos > 0) {
    	nowPos--;
    	buildPhotoScreen();
    }
  }

    @Override
    public void onSwipeNext() {
      if (nowPos < photos.size()-1) {
      	nowPos++;
      	buildPhotoScreen();
      }
    }
};

...
ViewGroup mBody = findViewById(R.id.markupPlace);
mBody.setOnTouchListener(onSwipeTouchListener);

...
        
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev){
        onSwipeTouchListener.getGestureDetector().onTouchEvent(ev);
        return super.dispatchTouchEvent(ev);
    }

        
        

 

'android source ' 카테고리의 다른 글

Delayed exit application  (0) 2020.01.16
ask Permission  (0) 2020.01.12
get physical screen width dots  (0) 2020.01.03
shared preference save, get  (0) 2019.10.10
getColor()  (0) 2019.09.30