View触屏事件的派发机制

来源:互联网 发布:千牛手机淘宝卖家版 编辑:程序博客网 时间:2024/04/29 13:36

一.整个view事件触发的流程是:
①dispatchTouchEvent—>OnTouch()—>onTouchEvent()–>在115ms-500ms之间会执行onLongclick()–>onclick()
②事件被执行的前提是上一级事件的返回值为true

手势识别和手势检测:

第一种:Gesturedetector:
onGestureListener:
手势触发的原理
1.用户触屏的一瞬间,会生成MotionEvent对象。
2.被onTouchListener监听到,转发到他的参数当中。
3.Gesturedetector转发MotionEvent对象到onGestureListener当中。
4.在onGestureListener中针对MotionEvent对象,做出适合的反馈。

private GestureDetector detector;  bt.setOnTouchListener(new OnTouchListener() {    @Override    public boolean onTouch(View v, MotionEvent event) {        detector.onTouchEvent(event);        return true;    }});}class MyGesture implements OnGestureListener{    @Override    public boolean onDown(MotionEvent e) {        return false;    }    @Override    public void onShowPress(MotionEvent e) {    }    @Override    public boolean onSingleTapUp(MotionEvent e) {        return false;    }    @Override    public boolean onScroll(MotionEvent e1, MotionEvent e2,            float distanceX, float distanceY) {        return false;    }    @Override    public void onLongPress(MotionEvent e) {    }    @Override    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,            float velocityY) {        return false;    }}
0 0
原创粉丝点击