Android 在“活动”中触摸特定视图时禁用dispatchTouchEvent

Android 在“活动”中触摸特定视图时禁用dispatchTouchEvent,android,gesture,Android,Gesture,我使用dispatchTouchEvent使用以下代码进行滑动手势 @Override public boolean dispatchTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub boolean result = super.dispatchTouchEvent(ev); // disable the gesture in this screen becaus

我使用dispatchTouchEvent使用以下代码进行滑动手势

@Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        // TODO Auto-generated method stub
        boolean result = super.dispatchTouchEvent(ev);
        // disable the gesture in this screen because we have   
        return gDetector.onTouchEvent(ev);
    }
我想使用SignatureView来捕获客户签名,使用
所以我想在用户点击SignatureView时禁用滑动手势,我该怎么做

我不熟悉
SignatureView
项目,但是对于一个常规的
GesterDetector
来说,只有当它在其“目标”
视图的范围内时,才可以像下面这样将事件传递给
GesterDetector

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {

    boolean result = super.dispatchTouchEvent(ev);

    if (inSignatureArea(ev)) {
        return gDetector.onTouchEvent(ev);
    }
    else {
        return result;
    }     
}

public boolean inSignatureArea(MotionEvent ev) {
    float eventX = ev.getX();
    float eventY = ev.getY();
    return (eventX > signatureArea.getX() && eventX < (signatureArea.getX() + signatureArea.getWidth())) ;
    // && (same thing for Y and height); 
}
@覆盖
公共布尔dispatchTouchEvent(MotionEvent ev){
布尔结果=超级dispatchTouchEvent(ev);
if(信号区(ev)){
返回gDetector.onTouchEvent(ev);
}
否则{
返回结果;
}     
}
公共布尔inSignatureArea(MotionEvent ev){
float eventX=ev.getX();
float eventY=ev.getY();
返回(eventX>signatureearea.getX()&&eventX<(signatureearea.getX()+signatureearea.getWidth());
//&&(Y和高度相同);
}
你应该能够使它适应你的需要