xml文件:

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android_gestureoverlayview.MainActivity" > <android.gesture.GestureOverlayView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/gestureOverlayView"
>
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher"/>
</android.gesture.GestureOverlayView>
</RelativeLayout>

源代码:

package com.example.android_gestureoverlayview;

import java.util.ArrayList;

import android.app.Activity;
import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.GestureOverlayView.OnGesturePerformedListener;
import android.gesture.Prediction;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
/**
* GestureOverlayView:
* 1.使用安卓自带的文件Gestures Builder生成手势文件(D:\JDK\Android SDK\samples\android-15\GestureBuilder)
* Gestures Builder一般在sdk中(生成手势文件)
* 1.1.导入:File-New-Android-Android Sample project
* 1.2.安装:将该项目安装到模拟器中,进行手势的自定义添加
* 1.3.在虚拟机的mnt/sdcard--(shell/emulated/0)中找到gestures文件,该文件包含自定义手势,将文件导出
* 2.加入项目
* 2.1新建一个文件夹res//raw,将gestures文件加入
* 3.GestureOverlayView
* 3.1一种手势输入的透明覆盖层,可覆盖在其他控件的上方,也可包含其他控件,存在3个监听器接口
* GestureOverlayView.OnGestureListener 手势监听器
* GestureOverlayView.OnGesturePerformedListener 手势执行监听器
* GestureOverlayView.OnGesturingListener 手势执行中监听器
*
*
*/
public class MainActivity extends Activity {
private GestureOverlayView gestureOverlayView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gestureOverlayView = (GestureOverlayView) findViewById(R.id.gestureOverlayView);
/**
* 执行以下步骤:
* 1.找到刚才的预设定的手势文件
* 2.加载那个手势文件中的所有手势
* 3.匹配 识别
*/
//从资源中将手势库文件加载进来
final GestureLibrary library = GestureLibraries.fromRawResource(MainActivity.this, R.raw.gestures);
library.load();
//GestureOverlayView.OnGesturePerformedListene 手势执行监听器
gestureOverlayView.addOnGesturePerformedListener(new OnGesturePerformedListener() { @Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
// TODO Auto-generated method stub
//读出手势库内容 识别手势 Prediction 预测
ArrayList<Prediction> mygesture = library.recognize(gesture);
Prediction prediction = mygesture.get(0);
//prediction 里面有两个参数 name,score(0.0-10)(相似度)值越大,要求越严格
if(prediction.score >= 5.0){
if(prediction.name.equals("exit")){
System.exit(0);
}else if(prediction.name.equals("privious")){
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, "没有该手势", 1).show();
}
}
}); } }

自定义手势_GestureOverlayVIew的更多相关文章

  1. 在Windows8 Winrt中 高性能处理多个条件语句 用于实现自定义手势

    http://blog.csdn.net/wangrenzhu2011/article/details/8578806 (转) 在winrt中 多点触控 控件的应用越来越多,例如 各种手势与 控件之间 ...

  2. 【转】iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势) -- 不错不错

    原文网址:http://blog.csdn.net/totogo2010/article/details/8615940 1.UIGestureRecognizer介绍 手势识别在iOS上非常重要,手 ...

  3. iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)

    iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)       1.UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加 ...

  4. ios iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)

    iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势) 转自容芳志大神的博客:http://www.cnblogs.com/stoic/archive/2013/02/27/2940 ...

  5. iOS--------手势识别的详细使用:拖动、缩放、旋转、点击、手势依赖、自定义手势

    1.UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性. iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了 ...

  6. iOS 手势操作:拖动、捏合、旋转、点按、长按、轻扫、自定义

    1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureReco ...

  7. 【转】自定义iOS的Back按钮(backBarButtonItem)和pop交互手势(interactivepopgesturerecognizer) --- 不错

    原文网址:http://blog.csdn.net/joonsheng/article/details/41362499 序 说到自定义UINavigetionController的返回按钮,iOS7 ...

  8. 【Android - 自定义View】之自定义九宫格手势解锁控件

    首先来介绍一下这个自定义View: (1)这个自定义View的名称叫做 LockView ,继承自View类: (2)这个自定义View实现了应用中常见的九宫格手势解锁功能,可以用于保证应用安全: ( ...

  9. iOS手势操作,拖动,轻击,捏合,旋转,长按,自定义(http://www.cnblogs.com/huangjianwu/p/4675648.html)

    1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureReco ...

随机推荐

  1. C# 中 string.Empty、""、null的区别

    原文C# 中 string.Empty."".null的区别 一.string.Empty 和 "" 1.Empty是string类中的一个静态的只读字段,它是 ...

  2. C# 中类和结构的区别

    转角撞倒猪原文C# 中类和结构的区别

  3. [转] windows7 IIS管理器 在计算机“.”上没有找到WAS服务

    原文地址:windows7 IIS管理器 在计算机"."上没有找到WAS服务作者:云中的风 OS:windows7旗舰版 产生问题原因:运行金蝶K3-HR时客户端提示中间层服务器不 ...

  4. Initializing nested object properties z

    public class Employee { public Employee() { this.Insurance = new Insurance(); } // Perhaps another c ...

  5. 34、Android中基于Socket的网络通信(一)

    Socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求. 在java中,Socket和ServerSocket类库位于java.net包中,ServerSocket用于服 ...

  6. c#操作XML文件的通用方法

    转载地址:http://www.studyofnet.com/news/36.html 原址没找到 sing System; using System.Data; using System.Confi ...

  7. sql-表值函数tvf

    带有参数的视图 create function fn_fenye (@count as int,@page as int) returns table as return select * from ...

  8. linux 流量监控

    iftop -i p5p1 -n -p dstat -n

  9. Java 8 中 CAS 的增强

    几天前,我偶然地将之前写的用来测试AtomicInteger和synchronized的自增性能的代码跑了一下,意外地发现AtomicInteger的性能比synchronized更好了,经过一番原因 ...

  10. 设置IE浏览器代理上网

    在局域网中,服务器可以直接通过IE网上冲浪,而工作站要想通过IE上网,如果是在服务器使用代理软件的情况下,其IE需要设置代理. 步骤一:启动IE浏览器,选择"工具",再" ...