GestureOverlayView:一种用于手势输入的透明覆盖层,用于识别各种手势,可以覆盖在控件上,也可以包含其他控件,有三个监听接口
1.GestureOverlayView.OnGestureListener//手势监听器
2.GestureOverlayView.OnGesturePerformed//手势执行监听器
3.GestureOverlayView.onGesturing//手势执行中监听器
//新建一项目,用来识别输入的手势与事先存在的手势库的匹配情况
建项目前,先在安卓模拟器中的Gesture Builder(安卓自带)添加自己的手势与对应的手势名称
添加后可以在对应的程序中的mnt中的sdcard路径中找到添加的手势文件,将其导出,再将其导入新的程序res里已建好的文件夹raw中。
public class MainActivity extends ActionBarActivity {
GestureOverlayView myGestureOverlayView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myGestureOverlayView=(GestureOverlayView) findViewById(R.id.gestureOverlayView);
//找到预设的手势文件
//加载手势文件的所有手势
//匹配,识别
//从资源库已经将资源文件加载进来
final GestureLibrary library= GestureLibraries.fromRawResource(this, R.raw.gestures);
library.load();
myGestureOverlayView.addOnGesturePerformedListener(new OnGesturePerformedListener() {
@Override
public void onGesturePerformed(GestureOverlayView arg0, Gesture gesture) {
// TODO Auto-generated method stub
//读出手势库的内容,识别手势
ArrayList<Prediction> mygesture=library.recognize(gesture);
Prediction prediction=mygesture.get(0);
if(prediction.score>=5)
{
if(prediction.name.equals("exit"))
{
finish();
}else if(prediction.name.equals("pervious"))
{
Toast.makeText(MainActivity.this, "上一页", Toast.LENGTH_SHORT).show();
}else if(prediction.name.equals("next"))
{
Toast.makeText(MainActivity.this, "下一页", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(MainActivity.this, "没有该手势", Toast.LENGTH_SHORT).show();
}
}
});
}
}