java中android中onTouchEvent方法的问题详解,谢谢解答!

public boolean onTouchEvent(MotionEvent event)
{
    //调用warp方法根据触摸屏事件的座标点来扭曲verts数组
    warp(event.getX(), event.getY());
    return true;
}

//MotionEvent event这两个哪个是数据类型,哪个是数值
//event.getX(), event.getY() 返回的是什么值是什么数据类型?

第一个是参数的数据类型,第二个是具体的参数名称,这个就是简单的方法声明的语法呀。

 View#onTouchEvent方法主要做了如下处理:

 (1) 如果此view被禁用了. (如果是触碰完成事件则设置按下状态),然后返回是否可点击.

   (中间的注释的意思为:一个可点击的View虽然禁用了,但是还是要把事件消耗掉,只是不响应它们而已.

if ((viewFlags & ENABLED_MASK) == DISABLED) {
    if (event.getAction() == MotionEvent.ACTION_UP && (mPrivateFlags & PFLAG_PRESSED) != 0) {
        setPressed(false);
    }
    // A disabled view that is clickable still consumes the touch
    // events, it just doesn't respond to them.
    return (((viewFlags & CLICKABLE) == CLICKABLE ||
            (viewFlags & LONG_CLICKABLE) == LONG_CLICKABLE));
}
(2) 如果此View有触碰事件处理代理,那么将此事件交给代理处理:


if (mTouchDelegate != null) {
         if (mTouchDelegate.onTouchEvent(event)) {
             return true;
         }
}

(3)如果不可点击(既不能单击,也不能长按)则直接返回.false


(4)可点击时,处理触控事件.根据,按下,移动,取消,抬起,这些基本触摸事件来分别处理.

 它们其中又有很强的关联性.

第一个是数据类型,第二个是数值,返回的是点击的坐标