标签:ongestureperformedli gestureoverlayview gesturebuilder 自定义手势 android
上篇实现:
(1)OnTouchListener 实现 上下左右手势识别
(2)OnTouchListener + SimpleOnGestureListener + GestureDetector 实现 上下左右 手势识别
(1)GestureOverlayView + GestureLibrary + OnGesturePerformedListener 实现 自定义手势识别
(2)demo 下载
(1)自定义手势识别文件
(2)加载 手势文件
(3)布局实现
(4)识别/读取 手势
以eclipse为例:File -> New -> Other -> Android -> Android Simple Project ;
右击 运行工程 -> 运行后 点击 -> add gesture -> 画上你自己定义的手势 -> 起个名字(记住 需要使用)-> done ;
当点击done -> 显示 Toast 提醒 文件地址 -> 保存在sdcard 里,自己导出即可 ;
(1)在 res 文件夹下 新建 raw 文件夹;
(2)复制gesture 到raw 文件夹下 ;
(3)在onCreate 里加载
private GestureLibrary library;
//加载手势文件 library=GestureLibraries.fromRawResource(MainActivity.this,R.raw.gestures); library.load();
(1)在 布局文件中 添加 GestureOverlayView ,可以 将你自己的 控件 放在 布局里面;
(2)实例:
<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="${relativePackage}.${activityClass}" > <android.gesture.GestureOverlayView android:id="@+id/gestureOverlayView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" > <ImageView android:id="@+id/img_test" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" android:layout_gravity="center" android:src="@drawable/icon_location" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_gravity="center|top" android:text="没有滑动" android:textColor="#0000ff" android:textSize="25sp" /> </android.gesture.GestureOverlayView> </RelativeLayout>
(1)实现OnGesturePerformedListener 监听
/** * 第三中方式 自定义方式 * */ //设置监听 class gestureOverlayListener implements OnGesturePerformedListener{ @Override public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { //识别手势: 通过 library 读取手势文件 ,在这里读取 ArrayList<Prediction> predictions=library.recognize(gesture); //去第一个就 是 取到的第一个 Prediction prediction=predictions.get(0); //提示值 String str="没有改手势"; //更加相似度 来 取得 区间(0.0~10.0 大致区间) if(prediction.score>=5.0){ //通过 name 来判断 值 if(prediction.name.equals("error")){ str="error:很遗憾,错的!"; img_test.setImageResource(R.drawable.icon_error); }else if(prediction.name.equals("light")){ str="light:我是闪电"; img_test.setImageResource(R.drawable.icon_light); }else if(prediction.name.equals("none")){ str="none :什么都没有"; img_test.setImageResource(R.drawable.icon_none); }else if(prediction.name.equals("right")){ str="true : 恭喜你答对了!"; img_test.setImageResource(R.drawable.icon_true); } } textView1.setText(str); Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show(); } }
(2)初始化控件 和 添加监听
gestureOverlayView1=(GestureOverlayView) findViewById(R.id.gestureOverlayView1); //添加 gestureOverlayView1.addOnGesturePerformedListener(new gestureOverlayListener());
http://download.csdn.net/detail/lablenet/9063867
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:ongestureperformedli gestureoverlayview gesturebuilder 自定义手势 android
原文地址:http://blog.csdn.net/lablenet/article/details/48105711