Android GestureDetector 双击回调

GestureDetector 是 Android 框架中的一个类,用于检测和处理触摸手势事件。它提供了一种简单的方式来识别常见的手势,如点击、长按、滑动、双击等,并为每种手势提供相应的回调方法。


 如果要完成双击屏幕触发,安卓有个API:

class G extends GestureDetector.SimpleOnGestureListener{

    @Override
    public boolean onDoubleTap(MotionEvent e) { // 双击对应的操作
        return super.onDoubleTap(e);
    }

    @Override
    public boolean onSingleTapUp(MotionEvent e) { // 点击后(非长按) 抬起
        return super.onSingleTapUp(e);
    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // 滑动过程中 抬起
        return super.onFling(e1, e2, velocityX, velocityY);
    }

    @Override
    public boolean onDown(MotionEvent e) { // 点击时
        return super.onDown(e);
    }

    @Override
    public void onLongPress(MotionEvent e) { // 长按
        super.onLongPress(e);
    }

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // 滑动
        return super.onScroll(e1, e2, distanceX, distanceY);
    }
}

在 GestureDetector 的初始化时的回调传入这个类即可(完整代码):

public class MainActivity extends AppCompatActivity {

    GestureDetector gestureDetector;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        gestureDetector = new GestureDetector(this,new G());
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return gestureDetector.onTouchEvent(event);
    }


    class G extends GestureDetector.SimpleOnGestureListener{

        @Override
        public boolean onDoubleTap(MotionEvent e) {

        //双击对应的操作

        return super.onDoubleTap(e);
        }
    }

}  

总结来说,GestureDetector 是 Android 框架中的一个方便的类,用于检测和处理触摸手势事件。通过使用 GestureDetector,你可以轻松地实现常见手势的识别和处理逻辑,从而增强你的应用的交互性和用户体验。无论是实现简单的点击事件,还是处理复杂的手势操作,GestureDetector 都是一个强大而灵活的工具。

Android GestureDetector是Android框架提供的一个手势检测器,可以通过它来识别用户在屏幕上的手势操作,例如单击、双击、长按、滑动等。使用GestureDetector可以大大简化手势操作的处理,同时也可以提升用户的使用体验。 GestureDetector主要有两种用法: 1. 直接使用GestureDetector类 在Activity或View中创建GestureDetector实例,然后在onTouchEvent()方法中将MotionEvent事件传递给GestureDetector实例进行处理。示例代码如下: ``` public class MyActivity extends Activity implements GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener { private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); gestureDetector = new GestureDetector(this, this); gestureDetector.setOnDoubleTapListener(this); } @Override public boolean onTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent(event); } @Override public boolean onSingleTapConfirmed(MotionEvent e) { // 处理单击事件 return true; } @Override public boolean onDoubleTap(MotionEvent e) { // 处理双击事件 return true; } @Override public boolean onDown(MotionEvent e) { return true; } // 省略其他回调方法 } ``` 2. 继承SimpleOnGestureListener类 SimpleOnGestureListener是GestureDetector.OnGestureListener和GestureDetector.OnDoubleTapListener接口的默认实现类,我们可以通过继承它来处理手势操作。示例代码如下: ``` public class MyGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onSingleTapConfirmed(MotionEvent e) { // 处理单击事件 return true; } @Override public boolean onDoubleTap(MotionEvent e) { // 处理双击事件 return true; } // 省略其他回调方法 } ``` 在Activity或View中创建GestureDetector实例,然后将继承自SimpleOnGestureListener的实例设置给GestureDetector实例。示例代码如下: ``` public class MyActivity extends Activity { private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); gestureDetector = new GestureDetector(this, new MyGestureListener()); } @Override public boolean onTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent(event); } } ``` 以上就是Android GestureDetector的基本用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值