一种用于手势输入的透明覆盖层,可以覆盖在其他空间的上方,也可包含在其他控件 android.gesture.GestureOverlayView

获得手势文件

需要用GesturesBuilder,如果没有就安装这个app

安装

其实这是一个Sample的,用eclipse和android studio中各有不同方法导入,在版本android2.33中有

取得文件

在GesturesBuilder画对应的手势和命名之后,可以在文件夹mmt中的sdcard中有个gestures文件,把这个文件保存起来,导入到你的项目的res文件夹中

监听器

有三种监听器

  1. OnGestureListener 手势监听器
  2. OnGesturePerformedListener 手势执行监听器(一般用这个)
  3. OnGesturingListener执行中的监听器

例子

实现在一张图片上各种自定义手势的效果

1.布局

可以在面板中的Advanced有GestureOverlayView,或者直接在AndroidMainFest.XML编写

<android.gesture.GestureOverlayView
android:id="@+id/gestureOverlayView"
android:layout_width="180dp"
android:layout_height="180dp" >
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher"/
</android.gesture.GestureOverlayView>

2.找到并加载刚刚导出来的手势资源

运行GesturesBuilder,添加你喜欢的手势

然后在文件夹mmt中的sdcard中有个gestures文件,用这个按钮保存到本地

添加到你的项目res文件夹下

3.给gestureOverlayView设置监听器

public class MainActivity extends Activity {
GestureOverlayView gestureOverlayView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gestureOverlayView = (GestureOverlayView) findViewById(R.id.gestureOverlayView);
//1.找到预先设定好的手势文件并加载进来
//这里的变量用final修饰是是由于局部变量的生命周期
final GestureLibrary library =GestureLibraries.fromRawResource(MainActivity.this, R.raw.gestures);
library.load();
//给gestureOverlayView添加监听器
gestureOverlayView.addOnGesturePerformedListener(new OnGesturePerformedListener() { @Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
// TODO Auto-generated method stub
//识别手势,返回值是一个手势的集合
ArrayList<Prediction> mygesture = library.recognize(gesture);
Prediction prediction = mygesture.get(0);
/*这里的score是指相似度,就是有点类似在这个误差范围内都认为是这个手势
*至于这个的数值需要自己调试,找一个合适的值,值越大,就越要接近原来的
* name就是你的手势的名字
*/
if (prediction.score >= 5.0 ) {
if (prediction.name.equals("exit")) {
finish();
}else if(prediction.name.equals("next")){
Toast.makeText(MainActivity.this, "下一个", Toast.LENGTH_LONG).show();
}else if (prediction.name.equals("previous")) {
Toast.makeText(MainActivity.this, "前一个", Toast.LENGTH_LONG).show();
}
}else {
Toast.makeText(MainActivity.this, "没有这个手势", Toast.LENGTH_LONG).show();
}
}
});
}
}

效果

 

手势交互之GestureOverlayView的更多相关文章

  1. 手势交互之GestureDetector

    GsetureDetector 一.交互过程 触屏的一刹那,触发MotionEvent事件 被OnTouchListener监听,在onTouch()中获得MotionEvent对象 GestureD ...

  2. 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)

    基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统) zouxy09@qq.com http://blog.csdn.net/zouxy09 一年多前开始接触计算机视觉这个领域的时候,年幼无 ...

  3. 【手势交互】4. Kinect for XBox

    "You are the Controller",Kinect for Xbox的广告词.明白说明了Kinect体感的交互方式.作为一款集成了诸多先进视觉技术的自然交互设备,Kin ...

  4. 【手势交互】8. Nimble Sense

    早在2012.2013年度,手势识别领域就发生了几起重要的行业并购.比方英特尔对Omek的收购,谷歌对Flutter的收购.而苹果公司更是以3.45亿美金得高价收购了之前为微软Kinect提供技术支持 ...

  5. iOS查看3D效果的手势交互

    公司项目中用到的,仿的人家厂子的效果,看起来还是挺高大上的,其实实现起来很简单,是一种伪3D;用手势滑动查看一个商品的3D展示. 在手机上手指左右滑动可以360°无死角查看这个商品,有兴趣的可以下de ...

  6. 【手势交互】6. 微动VID

    中国 天津 http://www.sharpnow.com/ 微动VID是天津锋时互动科技有限公司开发的中国Leap Motion. 它能够识别并跟踪用户手部的姿态.包含:指尖和掌心的三维空间位置:手 ...

  7. 【手势交互】9. PS Move

    索尼研发体感控制技术已有10年,在过去那么多年里.尝试了3D摄像头.超声波和电磁感应等各种技术.最后还是觉得眼下的MOVE所使用的技术最为合适.PS Move是索尼于2010年9月份推出.用来让PS3 ...

  8. iOS7自定义back按钮和pop交互手势

    Clambake for iPhone有一个回退按钮在所有的导航条上.这是一个简单的没有文字箭头. 实现一个自定义按钮是简单的.类似这个设置controller 的navigationItem一个le ...

  9. iOS界面-仿网易新闻左侧抽屉式交互 续(添加新闻内容页和评论页手势)

     本文转载至  http://blog.csdn.net/totogo2010/article/details/8637430       1.介绍 有的博友看了上篇博文iOS界面-仿网易新闻左侧抽屉 ...

随机推荐

  1. jquery平滑滚动到锚点 一行代码

    $("html,body").animate({scrollTop: $("#box").offset().top}, 1000); $("#box& ...

  2. 如何搭建一个独立博客——简明Github Pages与Hexo教程

    摘要:这是一篇很详尽的独立博客搭建教程,里面介绍了域名注册.DNS设置.github和Hexo设置等过程,这是我写得最长的一篇教程.我想将我搭建独立博客的过程在一篇文章中尽可能详细地写出来,希望能给后 ...

  3. Delphi与Java中的日期互换

    在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了.通过查阅资料,发现两 ...

  4. 创建LIST分区

    一:创建分区表 create table T_PM_ACCT_DTL_AF_TEST ( DATA_DATE NUMBER(8), ACCT_NO VARCHAR2(100), ACCT_ORD VA ...

  5. 【转】MFC中调试过程中查看输出信息 -- 不错

    原文网址:http://blog.sina.com.cn/s/blog_4e24d9c501014o39.html 笔记&&方便查阅. ~~~~~~~~~~~~~~~~~~~~~~~~ ...

  6. Hibernate(七)多对一单向关联映射

    上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本 次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类 似,只是 ...

  7. ubuntu14.04安装百度云Bcloud

    git地址:https://github.com/LiuLang/bcloud-packages sudo apt-get install python3-setuptools md5sum bclo ...

  8. Struct2 向Action中传递参数(中文乱码问题)

    就是把视图上的值传递到Action定义的方法中 也就是把数据从前台传递到后台 三种方式: 1.  使用action属性接收参数 比如jsp页面: <body> 使用action属性接收参数 ...

  9. hdu1026 Ignatius and the Princess I (优先队列 BFS)

    Problem Description The Princess has been abducted by the BEelzebub feng5166, our hero Ignatius has ...

  10. qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题

    在用opencv处理图片显示在qt label上的时候遇到不是问题 1. qt上要用qimage形式才干显示 IplImage转成 Qimage 彩色图像转换 IplImage  *fram; QIm ...