GestureOverlayView (帮助文档中对关于手势的解释非常不多,甚至对于一些listenrer一点解说都没有)
GestureOverlayView用法很方便,直接放进layout中或直接add进相应的viewgroup就可以了。
对于手势的生产,可以为GestureOverlayView注册一个
OnGestureListener主要是用于生产手势时用到
publicstatic interface OnGestureListener {
void onGestureStarted(GestureOverlayView overlay, MotionEvent event);
void onGesture(GestureOverlayView overlay, MotionEvent event);
void onGestureEnded(GestureOverlayView overlay, MotionEvent event);
void onGestureCancelled(GestureOverlayView overlay, MotionEvent event);
}
onGestureEnded(GestureOverlayView overlay, MotionEvent event)会在每一次touchup,所以需要注意保存当时的手势
onGestureStarted(GestureOverlayView overlay, MotionEvent event)也就手每一次touchdown的时候调用。
OnGesturePerformedListener主要是用于手势判断
void onGesturePerformed(GestureOverlayView overlay, Gesture gesture)会在当前手势输入结束时调用(合适结束,系统确定)
若add OnGesturePerformedListener,这是GestureOverlayView的手势图案是不能在当前屏幕保存的。这个很怪异。
至于
GestureLibrary需要一提的是,同名的手势,并不会覆盖存储,而是会都存储在ArrayList<Gesture>中,所以,如果项目需要某名字的手势,有且只有一个,那就要先remove。
Ps:个人认为,手势做的最好的就是,海豚浏览器,可是深入实用后,发现,海豚的手势判别也仅仅是加入了笔画数目而已。
GestureOverlayView.setGestureStrokeSquarenessTreshold(0),可以使手势判断是,认为垂直的笔画有效,但是这是水平线和垂直也就没有区别了。