Skip to content

Instantly share code, notes, and snippets.

@rajumark
Last active November 26, 2019 05:58

Revisions

  1. rajumark revised this gist Nov 26, 2019. 1 changed file with 5 additions and 3 deletions.
    8 changes: 5 additions & 3 deletions OnSwipeTouchListener.java
    Original file line number Diff line number Diff line change
    @@ -10,9 +10,11 @@
    public class OnSwipeTouchListener implements OnTouchListener {


    //how to use
    //how to use ,
    // 1) just copy paste OnSwipeTouchListener.java file to project
    //2) use bellow code

    //kotlin
    //kotlin code

    // imageView.setOnTouchListener(object : OnSwipeTouchListener(myContext!!) {
    // override fun onSwipeTop() {
    @@ -32,7 +34,7 @@ public class OnSwipeTouchListener implements OnTouchListener {
    // }
    // })

    //java
    //java code


    // imageView.setOnTouchListener(new OnSwipeTouchListener(MyActivity.this) {
  2. rajumark created this gist Nov 26, 2019.
    121 changes: 121 additions & 0 deletions OnSwipeTouchListener.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,121 @@
    package moozy.com.moozy.gestures;

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

    public class OnSwipeTouchListener implements OnTouchListener {


    //how to use

    //kotlin

    // imageView.setOnTouchListener(object : OnSwipeTouchListener(myContext!!) {
    // override fun onSwipeTop() {
    // Toast.makeText(myContext!!, "top", Toast.LENGTH_SHORT).show()
    // }
    //
    // override fun onSwipeRight() {
    // Toast.makeText(myContext!!, "right", Toast.LENGTH_SHORT).show()
    // }
    //
    // override fun onSwipeLeft() {
    // Toast.makeText(myContext!!, "left", Toast.LENGTH_SHORT).show()
    // }
    //
    // override fun onSwipeBottom() {
    // Toast.makeText(myContext!!, "bottom", Toast.LENGTH_SHORT).show()
    // }
    // })

    //java


    // imageView.setOnTouchListener(new OnSwipeTouchListener(MyActivity.this) {
    // public void onSwipeTop() {
    // Toast.makeText(MyActivity.this, "top", Toast.LENGTH_SHORT).show();
    // }
    // public void onSwipeRight() {
    // Toast.makeText(MyActivity.this, "right", Toast.LENGTH_SHORT).show();
    // }
    // public void onSwipeLeft() {
    // Toast.makeText(MyActivity.this, "left", Toast.LENGTH_SHORT).show();
    // }
    // public void onSwipeBottom() {
    // Toast.makeText(MyActivity.this, "bottom", Toast.LENGTH_SHORT).show();
    // }
    //
    // });





    private final GestureDetector gestureDetector;

    public OnSwipeTouchListener (Context ctx){
    gestureDetector = new GestureDetector(ctx, new GestureListener());
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
    return gestureDetector.onTouchEvent(event);
    }

    private final class GestureListener extends SimpleOnGestureListener {

    private static final int SWIPE_THRESHOLD = 100;
    private static final int SWIPE_VELOCITY_THRESHOLD = 100;

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

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    boolean result = false;
    try {
    float diffY = e2.getY() - e1.getY();
    float diffX = e2.getX() - e1.getX();
    if (Math.abs(diffX) > Math.abs(diffY)) {
    if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
    if (diffX > 0) {
    onSwipeRight();
    } else {
    onSwipeLeft();
    }
    result = true;
    }
    }
    else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
    if (diffY > 0) {
    onSwipeBottom();
    } else {
    onSwipeTop();
    }
    result = true;
    }
    } catch (Exception exception) {
    exception.printStackTrace();
    }
    return result;
    }
    }

    public void onSwipeRight() {
    }

    public void onSwipeLeft() {
    }

    public void onSwipeTop() {
    }

    public void onSwipeBottom() {
    }
    }