android 之GestureOverlayView可以轻松实现手势比划的识别,使用自己的手势库与之匹配,下面是一个小例子:
首先打开android SDK安装路径,还原AndroidGestureDetector项目,此项目可以为我们生成手势库,并把手势库文件村房子SD卡的根路径下, 我的项目路径为
D:\android-sdk-windows\samples\android-10\GestureBuilder,
注意,打开项目并为之添加三个文件才能添加到环境中,.classpath、.project、default.properties,这项文件到其他android项目中去拷贝就OK啦,
然后在项目中录入手势和与之对应的名称,并把生成的手势库文件拷贝出来,添加至替他工程。
另建工程GesturesText
main.xml
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<android.gesture.GestureOverlayView
android:id="@+id/gesture"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">GesturesText</string>
<string name="menu_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="nofind">没有找到匹配项</string>
<string name="low">匹配度太低</string>
</resources>
在工程res路径下新建raw文件夹,并将生成的手势库文件添加至文件夹。
MainActivity.java
package com.gesturestext.example;
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.GestureOverlayView.OnGesturePerformedListener;
import android.gesture.Prediction;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends Activity {
private GestureLibrary libraries;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
libraries = GestureLibraries.fromRawResource(this, R.raw.gestures);
libraries.load();
GestureOverlayView overlayView = (GestureOverlayView)findViewById(R.id.gesture);
overlayView.addOnGesturePerformedListener(new GesturePerformedListener());
}
private class GesturePerformedListener implements OnGesturePerformedListener{
@Override
public void onGesturePerformed(GestureOverlayView overlay,
Gesture gesture) {
ArrayList<Prediction> predictions = libraries.recognize(gesture);
if(!predictions.isEmpty()){
Prediction prediction = predictions.get(0);
if(prediction.score >= 6){
if("close".equals(prediction.name)){
finish();
}else if("fuchangle".equals(prediction.name)){
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:15001386673"));
startActivity(intent);
}
}else {
Toast.makeText(MainActivity.this, R.string.low, Toast.LENGTH_LONG).show();
}
}else {
Toast.makeText(MainActivity.this, R.string.nofind, Toast.LENGTH_LONG).show();
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
}
}
注意添加打电话权限<uses-permission android:name="android.permission.CALL_PHONE"/>
工程代码见附件
分享到:
相关推荐
主要为大家详细介绍了Android使用GestureOverlayView控件实现手势识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
人体关键点、人体属性、动作捕捉、手势识别项目;易于使用,用于交流学习
对GestureOverlayView, GestureDetector,SimpleOnGestureListener的简单使用。
GestureOverlayView的父类为android.widget.FrameLayout,是手势绘图区。GestureLibrary类主要对手势进行保存、删除等操作的,存放手势的仓库。下面给出创建手势的例子,如下图,可以定义如图手势打开csdn.net 1.1、...
文件中包含两种实现手势识别功能的工程,一种是使用GestureDetector实现手势识别,另一种是使用GestureOverlayView实现手势识别。
1. 先完成自定义手势的Activity 1.1 因为需要存储手势文件所以需要声明权限: ...1.2 简单写一个布局文件,其中用到了GestureOverlayView,相当于一个绘制组件。其中有一个重要属性gestureStrokeType,值为sing
自定义手势(gesture)和手势识别,GestureOverlayView相关知识
AliGestureAndroid平台手势识别,比Android原生的GestureOverlayView识别率更高,更实用。支持一些简单的手势。可以快捷启动app、拨号、发短信。代码结构本项目基于Android Studio开发,是有名的Application Crash ...
这是一款基于安卓平台的手势项目源码。主要功能是在屏幕上滑动就会显示出手势划过的线条,...主要用到GestureOverlayView进行手势绘画。(源码采用GBK编码)。之前也介绍过很多类似的项目,感兴趣的可以在首页搜索一下
GestureOverlayViewDemo1用于学习GestureOverlayView的一个简单demo,用来绘制手写签名主要核心代码//设置手势可多笔画绘制,默认情况为单笔画绘制mGestureOverlayView.setGestureStrokeTy(GestureOverlayView....
GestureOverlayView绘制文字并保存成图片demo
GestureOverlayView实现的手势绘制代码示例
A transparent overlay for gesture input that can be placed on top of other widgets or contain other widgets.
内部手势存储 将用户绘制的手势存储在 GestureLibrary 可以访问的文件中的一种非常简单的方法。 大家好,我叫 Julian Goede,这... 它主要是创建的,以便我可以练习 GestureOverlayView 的基础知识并在内部存储手势。