Android手势库

1. 生成手势 (可参考自带的GestureBuilder)

1) Layout里面加上

<android.gesture.GestureOverlayView

   android:id="@+id/gesture"

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

  />

2)GestureOverlayView注册OnGestureListener实现onGesturesStarted, onGesture, onGestureEnded方法

3)当onGestureEndded调用时表明手势已经完成, 从overlay.getGesture中的到已经完成的手势

4)使用GestrureLibraries.from(path)得到GestureLibrary

5) 使用gesturelibrary.addGesture("xxx", gesture) 将gesture与字符串绑定


2. 使用手势

1)将手势库放在工程中

2) 加载手势库

3)实现GestureOverlayView.OnGesturePerformedListener

4)覆写onGesturePerfromed, library.recognize(gesture), 就可以识别手势了



单划处理

 

首先生成手势库,用android中的自带例子生成。

并把生成的手势库,放入你要运行的android的项目的res目录下的raw中。

在xml中设置手势的触屏界面

 

<android.gesture.GestureOverlayView

   android:id="@+id/gesture"

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

  />

若设成

<android.gesture.GestureOverlayView

   android:id="@+id/gesture"

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

  />

则报错。


加载手势库,

 GestureLibrary library = GestureLibraries.fromRawResource(this,R.raw.gestures);//设置手势库路径

library.load();//加载手势库

得到手势屏幕

GestureOverlayView  overlayView =(GestureOverlayView) this.findViewById(R.id.gesture);

设置单笔手势监听器:

overlayView.addOnGesturePerformedListener(newGestureOverlayView.OnGesturePerformedListener(){

          public void onGesturePerformed(GestureOverlayViewoverlay,

                 Gesture gesture) {

             //用户写的手势与手势库对比,得到对比结果

             ArrayList<Prediction> list=library.recognize(gesture);

             if(list!=null){

                 Prediction p = list.get(0);//取得最符合的手势结果

                 if(p.score>5){//对比度越大相似度越高

                    Toast.makeText(getApplicationContext(), p.name, 1).show();

                 }

                 else{

                    Toast.makeText(getApplicationContext(), "匹配不成功", 1).show();

                 }

             }

             }

        });

 

 多划处理

在xml中设置手势的触屏界面

<android.gesture.GestureOverlayView

   android:id="@+id/gesture"

   android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gestureStrokeType="multiple" <!-此句是设置使用多笔处理-à

  />

将监听器该为

overlayView.addOnGestureListener(new OnGestureListener(){

 

          @Override

          public void onGesture(GestureOverlayView overlay, MotionEventevent) {

             

          }

          public void onGestureCancelled(GestureOverlayViewoverlay,

                 MotionEvent event) {

             

          }

 

          

          public void onGestureEnded(GestureOverlayViewoverlay,

                 MotionEvent event) {

          

          }

          public void onGestureStarted(GestureOverlayViewoverlay,

                 MotionEvent event) {

             gesture = overlay.getGesture();//保存在后一次的屏幕图

          }

       

       });

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值