Java乔晓松-android中的手势识别的详解

对于android中的手势识别,效果如下图所示:


模拟器中有个可以添加手势的工具Gestures Builder,可以添加手势如下图所示:


当添加手势成功后,会在Sdcard上产生保存的手势的文件gestures,如下图所示:

Java乔晓松-android中的手势识别的详解_第1张图片

你需要把sdcard中的gestures文件拷贝到项目中去

Java乔晓松-android中的手势识别的详解_第2张图片

手势识别的完整的代码如下:

package com.example.demo1;

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.Prediction;
import android.gesture.GestureOverlayView.OnGesturePerformedListener;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends Activity implements OnGesturePerformedListener {

	GestureLibrary mLibrary;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
		gestures.addOnGesturePerformedListener(this);
		mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
		if (!mLibrary.load()) {
			finish();
		}
	}

	@Override
	public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
		ArrayList predictions = mLibrary.recognize(gesture);

		// We want at least one prediction
		if (predictions.size() > 0) {
			Prediction prediction = (Prediction) predictions.get(0);
			// We want at least some confidence in the result
			if (prediction.score > 1.0) {
				// Show the spell
				Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT)
						.show();
			}
		}

	}
}

布局文件的代码如下:
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    >  
<TextView    
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content"   
    android:text="@string/hello"  
    />  
<android.gesture.GestureOverlayView  
    android:id="@+id/gestures"  
    android:layout_width="fill_parent"   
    android:layout_height="0dip"  
    android:layout_weight="1.0"   
    />  
</LinearLayout>



你可能感兴趣的:(android,builder,手势识别,gestures,GestureLibrary)