歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android--GestureOverlayView,手勢識別

Android--GestureOverlayView,手勢識別

日期:2017/3/1 10:01:34   编辑:Linux編程

打開模擬器,打開軟件:

點擊Add gesture 新建手勢:

這個例子我們用兩個手勢

將手勢識別庫從sdcard卡中導出,在res文件下新建raw文件,將導出的gesture文件粘貼到raw文件下

Java代碼:

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
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代碼:

<?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>

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved