MotionEvent对象分析

当用户触摸屏幕时将建立一个MotionEvent对象。MotionEvent包含关于发生触摸的位置和时间等细节信息。MotionEvent对象被传递到程序中合适的方法好比View对象的onTouchEvent()方法中。在这些方法中咱们能够分析MotionEvent对象那个,以决定要执行的操做。web

   MotionEvent对象是与用户触摸相关的时间序列,该序列从用户首次触摸屏幕开始,经历手指在屏幕表面的任何移动,直到手指离开屏幕时结束。手指的初次触摸(ACTION_DOWN操做),滑动(ACTION_MOVE操做)和抬起(ACTION_UP)都会建立MotionEvent对象。移动过程当中会产生大量事件,每一个事件都会产生对应的MotionEvent对象记录发生的操做,触摸的位置,使用的多大压力,触摸的面积,合适发生,以及最初的ACTION_DOWN和时发生等相关的信息。orm

    在设置事件时咱们有2中设置的方式,一种是委托式一种是回调式。第一种就是将事件的处理委托给监听器处理,你能够定义一个View.OnTouchListener接口的子类做为监听器,其中有onTouch()方法。而第二种是重写View类本身自己的onTouchEvent方法,也就是控件本身处理事件。onTouch方法接收一个MotionEvent参数和一个View参数,而onTouchEvent方法仅接收MotionEvent参数。这是由于监听器能够监听多个View控件的事件。不管是经过onTouchEvent仍是onTouch方法 它们的返回值都是boolean类型。true的含义是若是当前处理程序在处理完毕该事件后不但愿传播给其余控件,则返回true。若是View对象不但对此事件不感兴趣,并且对与此触摸序列相关的任何将来事件都不感兴趣,那么返回false。好比若是Button的onTouchEvent方法想要处理用户的一次点击 则会有2个事件产生ACTION_DOWN和ACTION_UP,按道理这两个事件都会调用onTouchEvent方法,若是方法返回false则在按下时你能够作一些操做,可是手指抬起时你将不能再接收到MotionEvent对象了,因此你也就无从处理抬起事件了。对象

相关文章
相关标签/搜索