Android系统中,目前没有一个接口可以让应用随时获取Touch事件,而这个功能恰恰是全屏手写中很重要的一个部分。 手写输入的实现主要分为3个部分:
1、笔画的获取
2、笔画的绘制
3、笔画的识别
在以往broncho项目中,根据平时的交流和对WM的粗略接触,以往全屏手写的笔画获取都是在WM里处理来实现笔画数据获取的。这一次在android系统上实现全屏手写,稍微改变了一下思路:
1、WM提供一个touch事件发送接口,让应用可以注册一个touch事件监听。事件监听函数返回true,WM不再处理这个事件,返回false,WM继续分发这个事件。
2、WM提供一个touch事件发送接口,让应用可以模拟发送touch事件。
3、修改WM事件分发函数,在分发touch事件到应用前,先调用事件监听函数。发送touch事件的接口可以直接调用WM的接口。
4、WM就做了这些修改,笔画的获取处理放到了全屏手写输入法中。
根据今天(2009年6月26日)在硬件上的调试结果,这个思路还是灵活的,对笔画事件获取的处理不再需要修改WM,直接修改全屏手写应用,然后安装即可。
目前的测试结果是笔画的获取还有不足,如多余的MOVE事件没有过滤(多余的MOVE事件就是没有收到DOWN事件时收到了MOVE事件);在模拟器上鼠标点击和实际手指触碰是完全不同的处理的,导致无法点击按钮。
修改的文件和要点:
<