您的位置:首页 > 其它

GestureOverlayView(手势识别2)

2015-07-26 20:00 405 查看
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();
				}
			}
		});
		
	}

}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: