码迷,mamicode.com
首页 > 移动开发 > 详细

Android事件处理

时间:2016-09-01 18:26:23      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

Android提供了两种事件处理机制

  •  基于监听的事件处理(委派式事件处理)
  •  基于回调的事件处理

     当某个事件源被触发时(发生事件活动),Android系统最先触发的是绑定在该事件源上的事件监听器,(如果继续传播的话)接着才会触发该事件源提供的事件回调方法。

Android基于监听的事件处理的处理模型如下:

       事件源,事件监听器,注册事件监听器

       事件源可以是任何界面组件,注册事件监听器就是调用事件源的setXxxListener(XxxListener)方法,关键是实现事件监听器类。View.OnClickListener是触摸屏事件监听器必须实现的接口,事件处理器中的事件处理器方法是由系统负责调用的。

Android基于回调的事件处理

       对于Android基于回调的事件处理而言,主要做法就是重写Android组件特定的回调方法,或者重写Activity的回调方法。Android为绝大部分界面组件都提供了事件响应的回调方法,只要重写他们就可以了。一般来说,基于回调的事件处理可用于处理一些具有通用性的事件,基于回调的事件处理代码回显得比较简洁,但对于某些特定的事件处理,无法使用基于回调的事件处理,只能采用基于监听的事件处理。

      几乎所有基于回调的事件处理方法都有一个boolean类型的返回值,该返回值用于标识该处理方法是否能完全处理该事件,为true,表示能处理,为false表示不能处理,继续传播出去。

下面的是一个基于触摸屏的回调处理方法:

public boolean onTouchEvent(MotionEvent event):相应触屏事件
  参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了改事件的所有信息,例如触摸的位置,触摸的类型以及触摸的时间等,该对象会在用户触摸手机时被创建。
  返回值:该方法的返回值是当该监听器已经完整地处理了改事件且不希望其他回调方法再次处理是返回true,否则返回false。
  通过event.getAction获取用户触摸的事件类型,触摸事件类型有:
      MotionEvent.ACTION_DOWN  //屏幕被按下
      MotionEvent.ACTION_UP  //屏幕按下被抬起
      MotionEvent.ACTION_MOVE  //在屏幕中拖动
  通过event.getX()和event.getY()(返回值为float类型)获取触摸位置的X,Y坐标(可转换为其他类型,比如int类型(int)event.getX())

后续深入了解参考:http://www.cnblogs.com/xiaoweiz/p/3803301.html
http://wangkuiwu.github.io/2015/01/03/TouchEvent-View/

Android事件处理

标签:

原文地址:http://www.cnblogs.com/feng-ye/p/5830753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!