//定义布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <android.gesture.GestureOverlayView android:id="@+id/gestureOverlayView_main" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
public class MainActivity extends Activity {
private GestureOverlayView gestureOverlayView = null;
private void initView() {
gestureOverlayView = (GestureOverlayView) findViewById(R.id.gestureOverlayView_main);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
// 添加
// gestureOverlayView
// .addOnGesturePerformedListener(new OnGesturePerformedListener() {
//
// // 手势绘制完毕回调
// @Override
// public void onGesturePerformed(GestureOverlayView overlay,
// Gesture gesture) {
// // TODO Auto-generated method stub
// // 手势库
// // 获取手势库对象的方法
// GestureLibrary gestureLibrary = GestureLibraries.fromFile(Environment
// .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
// + File.separator + "shoushi");
// // 要给每一个手势命名,也就是在一个手势库当中,可以还有多个手势
// gestureLibrary.addGesture("wuxing", gesture);
//
// // 把已经在手势库对象中的手势保存到文件当中,返回值代表成功失败
// boolean flag = gestureLibrary.save();
// if (flag) {
// Toast.makeText(getApplicationContext(), "添加成功",
// Toast.LENGTH_SHORT).show();
// }else{
// Toast.makeText(getApplicationContext(), "添加失败",
// Toast.LENGTH_SHORT).show();
// }
// }
// });
// 匹配
gestureOverlayView
.addOnGesturePerformedListener(new OnGesturePerformedListener() {
@Override
public void onGesturePerformed(GestureOverlayView overlay,
Gesture gesture) {
// TODO Auto-generated method stub
GestureLibrary gestureLibrary = GestureLibraries.fromFile(Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
+ File.separator + "shoushi");
// 如果加载成功了,就开始匹配逻辑。
if (gestureLibrary.load()) {
// 用一个已知的手势去寻找可以匹配的手势,返回成一个手势的集合
ArrayList<Prediction> list = gestureLibrary
.recognize(gesture);
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Toast.makeText(
getApplicationContext(),
list.get(i).name + ":"
+ list.get(i).score,
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(getApplicationContext(),
"没有匹配到", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(getApplicationContext(), "加载失败",
Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}