已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android开发技术,32 事件处理,主要内容:,1.Android事件处理机制2.监听接口事件3.覆盖父类的回调事件4.自定义手势5.手势识别,事件处理专题,Android事件处理机制,Android提供了强大的事件处理机制,它包括两套处理机制: 1.基于监听的事件处理 2.基于回调的事件处理对于Android基于监听的事件处理,主要的做法是为Android界面组件绑定特定的事件监听器。对于Android基于回调的事件处理,主要的方法是重写Android组件特定的回调方法或者重写Activity的回调方法,事件处理专题,基于监听的事件处理,在事件监听的处理模型中,主要涉及如下三类对象:1.Event Source(事件源):事件发生的场所,通常就是各个组件、例如按钮、窗口、菜单等。2.Event(事件):事件封装了界面组件上发生的特定事情(通常就是一次用户操作)。3.Event Listener(事件监听器):负责监听事件源所发生的事件,并对各种事件做出相应的响应。,事件处理专题,基于监听的事件处理,事件处理机制: 基于监听器的事件处理机制是一种委派式Delegation的事件处理方式,事件源将整个事件委托给事件监听器,由监听器对事件进行响应处理。这种处理方式将事件源和事件监听器分离,有利于提供程序的可维护性。,事件处理专题,基于监听的事件处理,事件处理机制模型:(见案例AndroidTest)通常有三种方式:当前类实现接口事件处理模型、内部类事件处理模型和匿名内部类事件处理模型三种。当然,在涉及到软件、程序结构上,还有一些其他的事件处理模型。各种方式在写代码中,合理的选择处理方式。,事件处理专题,基于监听的事件处理,事件处理专题,监听接口onClickListener接口onLongClickListener接口onFocusChangeListener接口onKeyListener接口onTouchListener接口onCreateContextMenuListener接口onOptionsItemSelected接口onCheckedChangeListener接口onItemSelectedListener接口,OnClickListener接口,事件处理专题,OnClickListener接口,OnClickListener的使用: 控件通过setOnClickListen( OnClickListener 对象),实现OnClick(View v)方法;OnClickListener冲突的问题:import android.view.View.OnClickListenerimport android.content.DialogInterface.OnClickListener这两个东西要同时用的话,要使用以下方式:new android.content.DialogInterface.OnClickListener()new anfroid.view.View.OnClickListener(),事件处理专题,OnLongClickListener接口,事件处理专题,OnLongClickListener接口,OnLongClickListener长按的时间是使用系统的500ms;使用OnLongClickListener的时候要注意它的返回值,返回true时事件会向下传递。而返回false时则事件不会向下传递。,事件处理专题,OnFocusChangeListener接口,事件处理专题,OnKeyListener接口,事件处理专题,OnTouchListener接口,事件处理专题,OnTouchListener接口,对单独的一个控件实现OnTouchListener,OnTouchListener有三个动作: MotionEvent.ACTION_DOWN、 MotionEvent.ACTION_UP、 MotionEvent.ACTION_MOVE;注意:ACTION_DOWN事件作为起始事件,他的重要性是超过ACTION_MOVE和ACTION_UP的,如果发生这两个事件,那么一定曾经发生了ACTION_DOWN事件。,事件处理专题,OnCreateContextMenuListener接口,事件处理专题,回调事件,回调事件概念: 相比基于监听器的事件处理模型,基于回调的事件处模型要简单些;该模型中,事件源和事件监听器是合一的,也就是说有独立的事件监听器存在。 当用户在GUI组件上触发某事件时,由该组件自身特定的函数负责处理该事件。通常通过重写Override组件类的事件处理函数实现事件的处理。,事件处理专题,回调事件,事件处理专题,回调事件,onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键onKeyDown拦截/屏蔽系统Home键重写onAttachedToWindow代码示例见备注,事件处理专题,重写onAttachedToWindow的原因:因为系统也在捕捉HOME键,而且优先级比我们的程序要高(因为home键是保持多任务的重要部分)。,回调事件,事件处理专题,回调事件,事件处理专题,回调事件,事件处理专题,回调事件,事件处理专题,回调事件,轨迹球与手机键盘的区别如下所示: )某些型号的手机设计出的轨迹球会比只有手机键盘时更美观,可增添用户对手机的整体印象。 )轨迹球使用更为简单,例如在某些游戏中使用轨迹球控制会更为合理。 )使用轨迹球会比键盘更为细化,即滚动轨迹球时,后台的表示状态的数值会变化得更细微、更精准。 提示:在模拟器运行状态下,可以通过F6键打开模拟器的轨迹球,然后便可以通过鼠标的移动来模拟轨迹球事件。,事件处理专题,回调事件,事件处理专题,回调事件,提示: 焦点描述了按键事件(或者是屏幕事件等)的承受者,每次按键事件都发生在拥有焦点的View上。在应用程序中,我们可以对焦点进行控制,例如从一个 View移动另一个View。下面列出一些与焦点有关的常用方法:1.setFocusable方法:设置View是否可以拥有焦点。2.isFocusable方法:监测此View是否可以拥有焦点。3.setNextFocusDownId方法:设置View的焦点向下移动后获得焦点View的ID。4.hasFocus方法:返回了View的父控件是否获得了焦点。5.requestFocus方法:尝试让此View获得焦点。6.isFocusableTouchMode方法:设置View是否可以在触摸模式下获得焦点,在默认情况下是不可用获得的。,事件处理专题,比较,比较:基于监听器的事件模型符合单一职责原则,事件源和事件监听器分开实现;Android的事件处理机制保证基于监听器的事件处理会优先于基于回调的事件处理被触发;某些特定情况下,基于回调的事件处理机制会更好的提高程序的内聚性。,事件处理专题,OnTouchEvent, onClick及onLongClick的调用机制:,在Android中,onClick、onLongClick的触发是和ACTION_DOWN及ACTION_UP相关的,在时序上,如果我们在一个View中同时覆写了onClick、onLongClick及onTouchEvent的话,onTouchEvent是最先捕捉ACTION_DOWN和ACTION_UP事件的,其次才可能触发onClick和onLongClicK。,事件处理专题,OnTouchEvent, onClick及onLongClick的调用机制:,思考:1、针对屏幕上的一个View控件,Android如何区分应当触发onTouchEvent,还是onClick,亦或是onLongClick事件? 2、在Android中,一次用户操作可以被不同的View按次序分别处理,并将完全响应了用户一次UI操作称之为消费了该事件(consume),那么Android是按什么次序将事件传递的呢?又在什么情况下判定为消费了该事件?要知详情:Android onTouchEvent, onClick及onLongClick的调用机制 .docx,事件处理专题,自定义事件,1、触摸屏手势2、输入法手势,事件处理专题,触摸屏手势,触摸屏手势:手势识别工具GestureDetector:GestureDetector提供了两个侦听器接口,OnGestureListener处理单击类消息,OnDoubleTapListener处理双击类消息。,事件处理专题,OnGestureListener接口,OnGestureListener的接口有这几个:,事件处理专题,自定义事件总结,总结:1.触屏后、一直触屏不动、演变顺序:onDown-onShowPress-onLongPress;2.触屏后、一直触屏慢移动是onScroll/快移动是onFling 、手指离开屏幕;,事件处理专题,自定义事件,OnDoubleTapListener的接口有这几个:(见案例:GestureTest),事件处理专题,自定义事件(案例:GestureProject),定义步骤:创建输入法手势、删除输入法手势、从SD卡中读取出手势文件、匹配出我们的自定义手势!自定义思考: 1. 什么是 GestureOverlayView ? 简单点说其实就是一个手写绘图区; 2. 什么是 GestureLibrary ? 这个类是对手势进行保存、删除等操作的,一个存放手势的小仓库! 3. 笔划是什么,字体笔画? 跟我们写字的笔划一个概念! 4.什么是笔划类型? 输入法手势操作中,笔划类型有两种;单一笔划、多笔划;单一笔划:是一笔划画出一个手势,从你手指接触屏幕开始到你离开屏幕笔画就会立刻形成一个手势!一气呵成!而多笔划则是可以在一定紧凑时间内随意几笔划都可!然后超过这个紧凑时间后便会形成一个手势!,事件处理专题,手势识别,概念:触摸屏的原生消息只有按下、抬起、移动这几种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年莆田辅警协警招聘考试备考题库及答案详解(必刷)
- 2025年萍乡辅警协警招聘考试真题及答案详解参考
- 2025年阿里辅警招聘考试真题及答案详解(真题汇编)
- 2025年自贡辅警招聘考试真题含答案详解(新)
- 2025年黔南布依族苗族自治州辅警招聘考试题库含答案详解(综合卷)
- 2025年甘南州辅警招聘考试题库及答案详解(网校专用)
- 2025年湘潭辅警招聘考试题库附答案详解(研优卷)
- 2025年温州辅警招聘考试真题及参考答案详解1套
- 2025年莆田辅警协警招聘考试真题含答案详解(综合题)
- 2025年海口辅警协警招聘考试真题及答案详解(考点梳理)
- GB/T 4337-2025金属材料疲劳试验旋转弯曲方法
- 第2单元 轴对称和平移 单元模拟提升培优卷-2025-2026学年五年级上册数学北师大版(含答案解析)
- 隧道维修安全教育培训课件
- 【《分拆上市的动因绩效研究的国内外文献综述》5700字】
- 第五单元 第二、三章学情评估卷(含答案)-冀少版八年级生物上册
- 市政道路工程测量方案
- 2025年江西工会工作者招聘考试(工会基础知识)历年参考题库含答案详解(5卷)
- 2025河南医疗器械公司会议记录范文
- 酸雨教学课件
- 供热管理办法佳木斯
- 装修工程的重点和难点及保证措施
评论
0/150
提交评论