Android--GestureOverlayView,手势识别

打开模拟器,打开软件:
 
 
点击Add gesture 新建手势:
 
这个例子我们用两个手势
 
 
 
将手势识别库从sdcard卡中导出,在res文件下新建raw文件,将导出的gesture文件粘贴到raw文件下
 
 
Java代码:
 
[html]  
package cn.mrzhu.test25;  
  
import java.util.ArrayList;  
  
import android.app.Activity;  
import android.gesture.Gesture;  
import android.gesture.GestureLibraries;  
import android.gesture.GestureLibrary;  
import android.gesture.GestureOverlayView;  
import android.gesture.GestureOverlayView.OnGesturePerformedListener;  
import android.gesture.Prediction;  
import android.os.Bundle;  
import android.widget.Toast;  
  
/**  
 * 手势识别  
 * @author root  
 *  
 */  
public class Main extends Activity {  
    private GestureOverlayView gov;  
    private GestureLibrary gl;  
    /** Called when the activity is first created. */  
    @Override   www.2cto.com
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        //从资源文件中将手势库加载进来  
        gl = GestureLibraries.fromRawResource(this, R.raw.gestures);  
        gl.load();  
        //从xml中取出GestureOverlayView控件  
        gov = (GestureOverlayView) findViewById(R.id.gestureOverlayView1);  
        //为GestureOverlayView控件添加监听  
        gov.addOnGesturePerformedListener(new OnGesturePerformedListener() {  
            @Override  
            public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {  
                //识别手势,返回一个类型为Prediction的列表  
                ArrayList<Prediction> list = gl.recognize(gesture);  
                Prediction pre = list.get(0);  
                //如果匹配度大于1,表示可以识别,否则提示无法识别   
                if(pre.score > 1){  
                    //判断名字是否与手势库的名字相同  
                    if(pre.name.equals("haha")){  
                        Toast.makeText(Main.this, "Recognize the haha", Toast.LENGTH_SHORT).show();  
                    }else if(pre.name.equals("xin")){  
                        Toast.makeText(Main.this, "Recognize the xin", Toast.LENGTH_SHORT).show();  
                    }  
                }else{  
                    Toast.makeText(Main.this, "Can't Recognize", Toast.LENGTH_SHORT).show();  
                }  
            }  
        });  
    }  
}  
 
 
main.xml代码:
 
[html]  
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:orientation="vertical" >  
  
    <android.gesture.GestureOverlayView  
        android:id="@+id/gestureOverlayView1"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent" >  
    </android.gesture.GestureOverlayView>  
  
</LinearLayout>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值