Android应用开发从入门到精通
上QQ阅读APP看书,第一时间看更新

2.3 触摸屏事件

上一节讲的是Android键盘事件,本节将介绍同样基于回调机制的Android触摸屏事件。本节的例子实现在Android设备屏幕上描绘一个红色的小圆球,这个小圆球随着手指在屏幕上的移动而移动。

上面的程序自定义了一个View类,重写了View组件的onTouchEvent(MotionEvent event)方法,使该组件能够处理触摸屏事件。本例的onTouchEvent方法中获取了当前手指的x、y坐标,然后在当前位置上用该View重绘小球。

MotionEvent是用于处理运动事件的类,这个类可以获取动作的类型、坐标。在Android 2.0版本之后,MotionEvent中还包含了多点触摸的信息,当有多个触点同时起作用的时候,可以获得触点的数目和每一个触点的坐标。

接下来就是直接在界面中使用该View组件了。

图2.3 跟随手指的小球

接下来在Activity类中无须为这个View绑定任何事件监听器,因为这个View自己就可以处理它的触摸屏事件了。运行效果如图2.3所示。

通过为View提供事件处理的回调方法,可以很好地将时间处理方法封装在View内部,从而提高程序的内聚性。

基于回调的事件处理更适合那种事件处理逻辑比较固定的View。