【译】系统的学习 Android Touch

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

内容简介:处理触摸事件 -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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

程序开发心理学

程序开发心理学

(美)杰拉尔德·温伯格 / 邓俊辉 / 清华大学出版社 / 2004-1-1 / 39.00元

本书开创"以人为本"研究方法的先驱,在长达25年的岁月中一直保持活力,至今仍在继续。1997年,本书作者温伯格因其在软件领域的杰出贡献,被美国计算机博物馆的计算机名人堂选为首批5位成员之一。 在计算机界,还没有任何一本计算机方面的书,在初次出版之后,能够在长达25年的岁月中一直保持活力--而且这种活力到今天仍在继续。《程序开发心理学》是开创"以人为本"研究方法的先驱,它以其对程序员们在智力、......一起来看看 《程序开发心理学》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器