手势识别GestureOverlayView

来源:互联网 发布:网络同志电视剧有哪些 编辑:程序博客网 时间:2024/05/17 23:49

简单的步骤:

第一步得在模拟器上安装一个手势识别的软件,SDK下边自带这个例子了,大家把这个工程导入,然后安装到模拟器就OK了。 路径是 D:\ADT\sdk\samples\android-14\GestureBuilder 安装路径大家按自己的电脑看。。samples下有很多版本的,随便哪个都行,GestureBuilder这个工程就是我们要的。

在模拟器打开这个软件,可以自己新建几个手势,命名后在下边用鼠标滑动即可,貌似只能单笔输入啊。

之后在DDMS中导出这个文件,在sdcard目录下,文件名字是gestures。如下图

 

之后把这个文件复制到我们自己的工程里的 资源文件assets下,新建一个文件夹raw。放到下边即可。

 

代码如下
GestureLibrary  gesturel;GestureOverlayView  gov;TextView  tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gov=(GestureOverlayView) findViewById(R.id.gesture1);tv=(TextView) findViewById(R.id.tv1);//从资源文件中将手势库加载进来  gesturel=GestureLibraries.fromRawResource(this, R.raw.gestures);gesturel.load();//添加监听事件gov.addOnGesturePerformedListener(new OnGesturePerformedListener() {@Overridepublic void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {//识别手势,返回一个类型为Prediction的列表 ArrayList<Prediction>  prediction=gesturel.recognize(gesture);Prediction  p=prediction.get(0);//如果匹配度大于1,表示可以识别,否则提示无法识别if(p.score>1){ //判断名字是否与手势库的名字相同if(p.name.equals("left")) {tv.setText("识别结果为:left");}else if(p.name.equals("right")){tv.setText("识别结果为:right");}else {tv.setText("无法识别");}}}});}

xml文件里就一个textview 和GestureOverlayView。自己拉2个控件就行
原创粉丝点击