手势保存了就可以开始识别了。
// 从资源文件中将手势库加载进来 if (mGre == null) { Log.e("", "手势"); mGre = GestureLibraries.fromRawResource(this, R.raw.yl_yl); // 无此句出错 mGre.load(); } // 从xml中取出GestureOverlayView控件 mGov = (GestureOverlayView) findViewById(R.id.gesture); mGov.setGestureColor(Color.BLACK);// 手势颜色 mGov.setGestureStrokeWidth(15);// 手势宽度 // 为GestureOverlayView控件添加监听 mGov.addOnGesturePerformedListener(this);
开始识别:
// 识别手势,返回一个类型为Prediction的列表 ArrayList<Prediction> gestureList = mGre.recognize(gesture); if (gestureList.size() > 0) { Prediction pd = gestureList.get(0); // 如果匹配度大于1,表示可以识别,否则提示无法识别 if (pd.score > 3) { // 判断名字是否与手势库的名字相同 if (pd.name.equals("勾")) { Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); Toast.makeText(MainActivity.this, "已识别", Toast.LENGTH_SHORT) .show(); } else { Toast.makeText(MainActivity.this, "名字不匹配", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(MainActivity.this, "无法识别", Toast.LENGTH_SHORT) .show(); } }
最后别忘了解绑监听:
protected void onDestroy() { mGov.removeOnGesturePerformedListener(this); super.onDestroy(); }
时间: 2024-10-08 22:18:08