Android源码剖析之Framwork层消息传递(Wms到View)

 本文来自刘兆贤的博客_CSDN博客-Java高级,Android旅行,Android基础领域博主 ,引用必须注明出处!

前面讲过Wms、Ams与Activity的一系列交互,包括创建过程、消息传递、窗口展示等,紧接上篇介绍最终的实现者-窗口和View,上篇对窗口已经有了比较多的介绍,本篇我们再对View再更深一步的了解。

首先明确下View的功能,主要用来展示画布即交互的图片背景等,而且承接各种手势动作消息,以及这两者之间的一系列内容;其他的属于窗口的概念;也可以说内容展示除了窗口就是View。

消息分发指:1、将触摸、键盘输入等消息转化成操作系统可识别的信号2、判断按键消息直接发给当前窗口进入View,触摸消息根据坐标匹配窗口3、最终处理消息。

界面绘制指:1、计算视图大小执行measure方法2、为视图分配位置执行layout方法3、将视图绘入窗口即draw方法。而View所有的功能将围绕这两点展开。

就第一点先说说,用户消息类型指Wms将硬件物理消息转化成统一格式消息,分为三类:按键消息、触摸消息和轨迹球消息(此消息API的Demo中可见,游戏中比较常见)。而消息的组成由以下三项:Action(上和下)、KeyCode(键代码0-9a-z)、Repeat(重复次数)。PS:由于安卓系统没有苹果系统全面,按键消息不断发出,安卓需要自己定义滑动速度和动作逻辑如消息延迟动作+延迟时间(500ms),因此安卓开发者也可以对此进行拓展。按键消息只有上和下,而触摸消息比较多样化,下面就拿它作为例子讲一讲:

Action:屏幕一般支持多点触控,比按键多出POINTER_DOWN2、POINTER_UP2等

EventTime和DownTime:消息发生时间和按下时间,用以区别按键和滑动事件

Pressure:力度大小,可大于1

Size:电容触摸的面积大小,0-1之间

g

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘兆贤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值