Android手势识别GestureOverlayView手势消除和多笔画识别问题
最近做的一个项目,要求将手势(Gesture)由用户自定义储存,然后再根据用户划出的手势分别启动相应的功能。在网上查找了一些资料,发现可以使用Android 1.6开始支持的手势识别功能,至于完成笔画绘制的部分可以直接使用GestureOverlayView来完成。在Android的模拟器了预装了一个叫GesturesBuilder的程序(最近的4.4还有,源码:http://download.csdn.net/detail/xiaowan0404/7852261)。通过对这个软件的源码学习以及网上的资料,完成的还算顺利,不过却遇到了两个问题,也就是标题中所说的自动消除和多笔画识别不准确。不过要解决这两个问题却有点麻烦,我直接说结论吧,Android的源码就是这样的,它并没有提供相应的API来给我们使用,所以我觉得这里Android只是给我们提供了一个“半成品”,尽管以我的水平来说,要写出这么一个半成品还是远远不足。
http://blog.csdn.net/stevenhu_223/article/category/1515741
这里已经把Android手势识别源码说明的很详细了,一些API我就不列出来,Android的官方文档和网上就有很多资料了。我就说一些值得注意之处。
http://download.csdn.net/detail/xiaowan0404/8039051
这是手势识别相关源代码。
GestureStore
GestureStore里面的两个方法:setOrientationStyle(int style)和void setSequenceType(int type)。我们可以看一下源码:
public static final int SEQUENCE_INVARIANT = 1;
// when SEQUENCE_SENSITIVE is used, only single stroke gestures are currently allowed
public static final int SEQUENCE_SENSITIVE = 2;
// ORIENTATION_SENSITIVE and ORIENTATION_INVARIANT are only for SEQUENCE_SENSITIVE gestures
public static final int ORIENTATION_INVARIANT = 1;
// at most 2 directions can be recognized
public static final int ORIENTATION_SENSITIVE = 2;
// at most 4 directions can be recognized
static final int ORIENTATION_SENSITIVE_4 = 4;
// at most 8 directions can be recognized
<