以下均转自Android游戏编程入门经典,转载请标明出处
触摸屏是获取用户输入最重要的一种方式。直到Android2.0版本才引入多点触摸。
先测试单点触摸事件,它适用于所有Android版本。我们在视图中注册一个OnTouchListener接口,并把触摸时间传递给这个接口实现。OnTouchListener接口只有一个方法:public abstract boolean onTouch(View v, MotionEvent event)
第一个参数是分派该触摸事件的View,第二个参数是获得触摸事件的参数。
OnTouchListener可在任何View中实现中通过View.setOnTouchListener方法进行注册。在MotionEvent被分派给View本身之前会先调用OnTouchListener方法。我们可在onTouch()方法的实现中返回true通知该View,我们已经处理事件。如果返回为false,那么View将自己处理该事件。
MotionEvent实例包含如下3个我们关心的方法:
MotionEvent.getX()和MotionEvent.getY();这两个方法报告触摸事件相对于View的X和Y坐标。坐标原点位于该视图左上角,X轴指向右边,Y轴指向下。坐标是以像素为单位。该方法返回浮点型数据,因此该坐标具有亚像素精度。
MotionEvent.getAction():返回触摸事件的类型。它是一个整型数,具有如下值之一:MotionEvent.ACTION_DOWN、
MotionEvent.ACTION_MOVE、MotionEvent.ACTION_CANCEL和MotionEvent.ACTION_UP。
顾名思义,当手指触摸屏幕时,将触发MotionEvent.ACTION_DOWN事件。
当手指移动时,则触发MotionEvent.ACTION_MOVE事件。只要手指没有完全脱离屏幕,总可以获得MotionEvent.ACTION_MOVE事件