【译】系统的学习 Android Touch

栏目: IOS · Android · 发布时间: 4年前

内容简介:处理触摸事件 -Subclass重写onTouchEvent() - 提供OnTouchListener •消费事件子类重写在
  • 触摸系统概述
  • 触摸事件框架
  • 处理自定义触摸事件
  • 系统提供的触摸机制
  • 系统提供的手势机制

如何处理 Andriod 触摸事件

  • 每个用户的触摸事件都被包装为动作事件

  • 描述用户当前的操作

    ACTION_DOWN
    ACTION_UP
    ACTION_MOVE
    ACTION_POINTER_DOWN
    ACTION_POINTER_UP
    ACTION_CANCEL
    
  • 包括原数据的事件

    • 触摸位置
    • 触控点的数量(手指)
    • 事件发生的时间
  • 一个”手势”从 ACTION_DOWN 开始到 ACTION_UP 结束

  • 事件是从 ActivitydispatchTouchEvent() 开始,通过视图从上而下的形式传递,父视图( ViewGroups )将事件分发给子视图,事件在传递的过程是可以随时拦截的。它会沿着关系链向下传递直到该事件被消费掉。任何未拦截的事件都会传递到 ActivityonTouchEvent() 后结束。

  • Activity.dispatchTouchEvent() ,总是被首先调用,然后将事件发送到附加的 Window 根视图中, onTouchEvent() ,如果没有视图消耗事件是调用,总是持续的调用状态中。

  • View.dispatchTouchEvent() ,如果存在,则首先将事件发送给侦听器 View.OnTouchListener.onTouch() ,如果没有消耗则处理事件本身, View.onTouchEvent()

  • ViewGroup.dispatchTouchEvent() 中的 onInterceptTouchEvent() ,会检查它是否应该取代子视图。而对于每个子视图,如果事件是相关的(内部视图)则以相反的顺序添加它们。如果 child.dispatchTouchEvent() 以前没有处理则继续传递到下一个视图,直到该事件被消耗(与View相同)。事件拦截( onInterceptTouchEvent() 返回 true )会将 ACTION_CANCEL 传递给子 Activity,所有即将的事件都由ViewGroup直接处理。子视图可以调用 requestDisallowTouchIntercept() 来阻止 onInterceptTouchEvent() 继续持有当前手势的时间。 每个新手势( ACTION_DOWN )都会重置 fragmework 的标识。

错误的视图案例

【译】系统的学习 Android Touch

有趣的视图案例

【译】系统的学习 Android Touch
【译】系统的学习 Android Touch

处理自定义事件

处理触摸事件 -Subclass重写onTouchEvent() - 提供OnTouchListener •消费事件

  • 使用ACTION_DOWN返回true以显示兴趣 •即使您对ACTION_DOWN不感兴趣,也请返回true
  • 对于其他事件,返回true只会停止进一步处理 •ViewConfiguraCon -getScaledTouchSlop()中可用的有用常量 •距离移动事件可能会在被视为拖动之前发生变化-getScaledMinimumFlingVelocity() •系统认为拖动为速度的速度-getScaledPagingTouchSlop() •触摸用于水平分页手势的slop(即ViewPager) - 为每个设备的密度缩放显示的值

处理事件

子类重写 onTouchEvent() 方法,并提供一个 OnTouchListener 。使用 ACTION_DOWN 并返回 true 表示消耗该事件即使您对 ACTION_DOWN 不大算消耗该事件也请返回 true ,对于其他事件,返回 true 会停止事件的进一步处理。

ViewConfiguration 中有用的常量:

getScaledTouchSlop()
getScaledMinimumFlingVelocity()
getScaledPagingTouchSlop()

以上内容是 Mastering the Android Touch System PPT 1-10页的内容总结,文章有些术语及方法释明需要调整校对。剩下的10页会陆续补上。如果有翻译不妥的地方,欢迎大家提出,一起完善。


以上所述就是小编给大家介绍的《【译】系统的学习 Android Touch》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Access2003数据库开发典型范例

Access2003数据库开发典型范例

王樵民 / 第1版 (2006年8月1日) / 2006-8 / 42.00元

Access数据库管理软件是一套集数据管理、程序开发功能于一体的高级办公软件,是特别适合普通办公人员进行日常工作的有力助手。本书面向非计算机专业人员,通过多个实例讲解Access中的各种开发技术,介绍实际工作过程中应用软件的编制方法,以及与Excel等软件之间的信息互用技术等内容。能够帮助读者快速掌握Access数据库的开发技术,构建解决自己工作中实际问题的数据库管理系统,从而提高办公效率。一起来看看 《Access2003数据库开发典型范例》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试