android gesture,Android Gesture 手势创建以及使用示例
在Android1.6的模拟器里面预装了一个叫Gestures Builder的程序,这个程序就是让你创建自己的手势的(Gestures Builder的源代码在sdk问samples里面有,有兴趣可以看看)
将上面这四个文件复制到你的工程目录下面,如图所示
在模拟器上面运行这个工程文件,在模拟器上面创建一些手势文件,例如:
创建的手势将被保存到/mnt/sdcard/gestures里面,然后新建一个测试的手势项目文件,将gestures文件复制到res目录中的raw文件下面,
然后配置xml文件,xml配置如下:
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.xunfang.gesture.MainActivity" >
android:id="@+id/gv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:gestureStrokeWidth="10"
android:gestureColor="#ff0000"
/>
GestureOverlayView:一种用于手势输入的透明覆盖层,可覆盖在其他控件的上方,也可包含其他控件。
Android:gestureStrokeType 定义笔画(定义为手势)的类型
Android:gestureStrokeWidth 画手势时,笔划的宽度
activity文件内容如下
package com.xunfang.gesture;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.Prediction;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;
public class MainActivity extends Activity {
private GestureOverlayView gv ;
private boolean loadStatus ;
private GestureLibrary gestureLibrary ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//拿到控件
gv = (GestureOverlayView) findViewById(R.id.gv) ;
//创建加载手势库的工具
gestureLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures) ;
//加载手势库
loadStatus = gestureLibrary.load() ;
//给gv控件加一个监听器
//OnGesturePerformedListener监听器监听一种手势(一笔画完)
gv.addOnGesturePerformedListener(new GestureOverlayView.OnGesturePerformedListener(){
@Override
public void onGesturePerformed(GestureOverlayView overlay,
Gesture gesture) {
//如果手势库加载成功
if(loadStatus){
//识别手势 Prediction是一个相似度对象,集合中的相似度是从高到低进行排列
ArrayList pres = gestureLibrary.recognize(gesture) ;
if(!pres.isEmpty()){
//拿到相似度最高的对象
Prediction pre = pres.get(0) ;
//用整型的数表示百分比 >60%
if(pre.score > 6){
//拿到手势的名字判断进行下一步逻辑
if("94".equals(pre.name)){
//说明想关掉当前的activity
finish() ;
}else if("yes".equals(pre.name)){
//说明想打电话了
Intent intent = new Intent() ;
intent.setAction(Intent.ACTION_CALL) ;
intent.setData(Uri.parse("tel://110")) ;
startActivity(intent) ;
}else if("666".equals(pre.name)){
//说明你想弹一个土司
Toast.makeText(MainActivity.this, "哈哈,我弹出来了", 0).show() ;
}
}else{
Toast.makeText(MainActivity.this, "手势不匹配", 0).show() ;
}
}else{
Toast.makeText(MainActivity.this, "手势库加载失败", 0).show() ;
}
}
}
}) ;
这里用到了拨打电话的界面,一定要添加权限,如下图所示
这里之后代码就玩了,可以进行测试。
我输入一个6
然后就弹出来了。表示验证成功。
android gesture,Android Gesture 手势创建以及使用示例相关推荐
- android自定义手势,Android编程实现自定义手势的方法详解
本文实例讲述了Android编程实现自定义手势的方法.分享给大家供大家参考,具体如下: 之前介绍过如何在Android程序中使用手势,主要是系统默认提供的几个手势,这次介绍一下如何自定义手势,以及如何 ...
- android手势创建及识别
使用一些浏览器或者输入法应用时会有一些手势操作,还可以自定义手势.这些神奇的操作是怎么做的呢?这一篇重点记录手势的识别和创建.这篇的内容使用到的是android.gesture包,具体的例子参考的是S ...
- android 按钮手势,如何在Android 10中使用手势导航或如何关闭它
谷歌移动操作系统的最新版本Android 10带有许多出色的新功能.在Android 9.0 Pie中向Android中引入了手势导航 - 它使用滑动和其他操作来控制手机,而不是点击按钮.在Andro ...
- Android图案密码,手势锁源码解析
Android图案密码解锁源码解析 Android Lock Pattern 源码解析 1. 介绍 1.1 关于 Android 的图案密码解锁,通过手势连接 3 * 3 的点矩阵绘制图案表示解 ...
- Android OpenGL射线拾取手势旋转(二)
上回分解-_-!,Android OpenGL射线拾取&手势旋转(一). 3)Renderer:RayPickRenderer.java OpenGL渲染器,比较多的东西都在这里面了. pub ...
- 树莓派Android Things物联网开发:创建一个Things项目
[转载请注明出处:http://blog.csdn.net/leytton/article/details/77854144] <树莓派Android Things物联网开发>系列文章专栏 ...
- Android实例开发中如何创建第一个项目(android studio)
当我们配置好android环境后,如何创建第一个项目,每一项代表了什么意思,这里以Android studio 为例,其他软件如eclipse等是类似的操作 当我们安装好AS后 这里我们选择第一项 其 ...
- 【Android 文件管理】分区存储 ( 创建与查询图片文件 )
文章目录 一.分区存储模式下使用 MediaStore 插入图片 二.分区存储模式下使用 MediaStore 查询图片 三.相关文档资料 Android 分区存储系列博客 : [Android 文件 ...
- android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法
Android的开发其实是比较灵活的,其实在安装了Android应用程序之后,会在桌面上自动创建快捷方式,接下来爱站技术频道小编将会介绍Android应用启动后自动创建桌面快捷方式的实现方法给大家,有 ...
- 【Android Developers Training】 93. 创建一个空验证器
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
最新文章
- 同学Linux,同成长
- AngularJS2.0 hello world例子——引入这么多额外的依赖库真是很忧伤啊
- Array Elimination 运算,gcd,思维
- Golang协程案例:并行计算指定数的阶乘(未使用管道)
- 1266: [AHOI2006]上学路线route
- 如何设置python的编码格式为utf-8
- 疲劳容器的定义_材料疲劳
- swagger注释API详细说明
- 飞机游戏跟踪导弹的算法[C#源码]
- jmeter请求grpc接口
- 基于和风天气API开发的天气查询小工具(含源码)
- 日系插画学习笔记(十一):日系插画标准上色流程
- mysql期中考试题及答案_MySQL数据库考试试题及答案 -
- 编程环境搭建(云上编程和本地编程)
- 【阅读笔记】联邦学习实战——联邦学习智能用工案例
- android游戏开发实例-可局域网对战的飞行棋(一)
- 阿里云支持备案云产品列表(不只是云服务器)
- JSON 与 XML 对比
- js一天、两天倒计时定时器实现方案
- 装linux系统和安装工具
热门文章
- 【疾病分类】基于matlab LBP果实病害检测分类【含Matlab源码 1714期】
- 【图像压缩】基于matlab GUI DCT图像无损压缩【含Matlab源码 726期】
- 【图像处理】基于matlab GUI图像处理(编辑+分析+调整+平滑+锐化+小波变换)【含Matlab源码 207期】
- gin mysql_golang+gin+mysql构建RESTful API
- matlab利用窗改变幅值_Matlab在车辆中的应用 信号处理分析
- numpy.loadtxt() 用法
- java集合拿到每个元素_java – 如何有效地小写每个元素的集合?
- mysql event查询_Mysql中Event的一些测试
- 什么?你的私钥泄漏了?
- 如何让textarea不可拖拽变化大小