一基于回调机制的事件处理
回调机制实质上就是将事件的处理绑定在控件上,由图形用户界面控件自己处理事件,回调机制需要自定View来实现回调不是由该方法的实现方直接调用,而是在特定的事件或条件发生时,由另外一方通过一个接口来调用,用于对该事件或条件进行响应。
onTouchEvent()方法
此方法用来处理手机屏幕的触摸事件,该方法在View类中定义,并且所有的View子类全部重写了该方法
格式:public boolean onTouchEvent(MotionEvent event)
参数event:为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置、触摸的类型以及触摸的时间等。
该对象会在用户触摸手机屏幕时被创建
返回值:该方法的返回值为不希望其他回调方法再次处理时返回true,否则返回false。
该方法处理三种事件:
1.屏幕按下:MotionEvent.getAction()的值为
MotionEvent.ACTION_DOWN
2.屏幕被抬起:MotionEvent.getAction()的值为
MotionEvent.ACTION_UP
3.在屏幕中拖动:MotionEvent.getAction()的值为
MotionEvent.ACTION_MOVE
在java代码中有一系列的get...()方法可用,在下面例题中用到下列方法:
1.MotionEvent.getAction()方法类获取屏幕被按下等事件的状态
2.Event.getX()、Event.getY()方法类获取触点坐标值
3.使用Event.getPressure()方法类获取触摸屏压力大小
4.使用Event.getSize()方法来获取触点尺寸
案例:在屏幕区域内触摸滑动时,捕捉按下、抬起事件的状态和滑动的坐标,触点压力,触点大小等信息。
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:background="#999999" >
<TextView
android:id="@+id/touch_area"
android:layout_width="match_parent"
android:layout_height="360dp"
android:textColor="#99ffff"
android:text="触摸事件测试区" />