下面是一个示例代码,演示如何在Android开发中监听左滑和右滑的操作:

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

public class SwipeView extends View {

    private GestureDetector gestureDetector;

    public SwipeView(Context context) {
        super(context);
        init(context);
    }

    public SwipeView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }

    public SwipeView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);
    }

    private void init(Context context) {
        gestureDetector = new GestureDetector(context, new SwipeGestureListener());
        setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return gestureDetector.onTouchEvent(event);
            }
        });
    }

    private class SwipeGestureListener extends GestureDetector.SimpleOnGestureListener {

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

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

上述代码中,我们自定义了一个SwipeView控件,通过GestureDetector来识别左滑和右滑的手势操作。在init()方法中,我们将GestureDetectorOnTouchListener绑定到控件上。SwipeGestureListener类继承自GestureDetector.SimpleOnGestureListener,重写了onFling()方法来判断手势的滑动方向。在onFling()方法中,我们可以添加需要执行的左滑和右滑逻辑

android开发: 我有一个控件要监听左滑和右滑给点示例代码

原文地址: https://www.cveoy.top/t/topic/iJRB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录