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"/>
工程代码见附件
分享到:
相关推荐
在 AndroidStudio 中,手势识别主要通过使用 GestureOverlayView 组件来实现。GestureOverlayView 是一个特殊的视图组件,用于捕捉用户的手势 Inputs,并将其转换为手势 Events。开发者可以使用 GestureOverlayView ...
在Android开发中,手势识别是提升用户体验的重要一环。Android手势库识别主要涉及的是如何让应用能够理解并响应用户的触摸动作,从而实现更直观、更便捷的交互方式。本教程适用于初学者,将深入探讨如何在Android...
手势识别主要依赖于Android SDK中的GestureOverlayView和GestureLibrary类。GestureOverlayView是一个可以叠加在其他视图上的组件,用于捕捉用户的绘画手势,而GestureLibrary则用于存储和识别预定义的手势。 1. **...
在安卓(Android)平台上,用户自定义手势识别是一项高级功能,允许用户通过特定的手势来触发应用程序或系统级别的操作,从而提升操作效率和个性化体验。本文将深入探讨这一技术,包括其工作原理、实现方式以及如何...
在Android开发中,手势识别是实现用户与应用交互的重要手段之一。`GestureOverlayView`是Android SDK提供的一种组件,专门用于处理用户的手势输入。它允许用户在屏幕上绘制手势,并提供了一种简单的方法来识别和处理...
在Android平台上,手势识别是一种常见的用户交互方式,它允许用户通过特定的手势操作来控制或与应用程序进行互动。本项目提供的“Android手势识别源码”是一个可以运行的应用程序,其特点是代码注释清晰,便于理解,...
本文将详细介绍如何使用Android API中的GestureOverlayView、GestureDetector和SimpleOnGestureListener来实现基本的手势识别功能。 首先,我们来看`GestureOverlayView`。这是一个可以覆盖在其他View之上的特殊...
在Android开发中,手势识别是构建用户交互丰富的应用程序的关键部分。手势识别允许用户通过触摸屏设备的各种动作来控制和操作应用,例如滑动、点击、捏合等。本教程将聚焦于Android手势识别的实现,主要关注`...
为了实现手势识别,Android提供了一个名为GestureOverlayView的控件,它专门用于接收和处理用户的手势动作。 首先,要使用GestureOverlayView控件,我们需要先建立一个手势库。这个手势库的作用是存储和识别用户...
在Android平台上,手势识别是一种重要的用户交互方式,它允许用户通过特定的手势操作来与应用程序进行互动,提高用户体验。手势识别技术广泛应用于各种移动应用,如游戏、绘图工具、导航应用等。本文将深入探讨...
总结起来,Android触屏手势识别涉及了触摸事件处理、`GestureDetector`、`ScaleGestureDetector`、`GestureOverlayView`以及自定义手势识别等多个方面。理解并熟练运用这些知识点,可以创建出更加直观、友好的用户...
在Android开发中,触屏手势识别是提升用户体验的关键技术之一。这个"Android触屏手势识别Demo源码"提供了一个实际的示例,帮助开发者理解如何在Android应用中实现手势识别功能。下面将详细讲解Android触屏手势的基础...
在Android平台上,手势识别是移动应用开发中的一个重要领域,它允许用户通过触摸屏幕的各种动作来控制和交互应用程序。本实例主要关注的是如何实现一个能够记录并识别手指运动轨迹及坐标的系统。以下将详细讲解这一...
在Android平台上,手势识别是一项重要的技术,它使得用户可以通过简单的手部动作与设备进行交互,大大提升了用户体验。本文将深入探讨Android手势识别的原理、应用以及实现方法。 首先,手势识别涉及的关键技术包括...
在Android开发中,手势(Gesture)和手势识别是提升用户体验的重要技术之一。用户可以通过简单的手势操作,如滑动、点击、捏合等,与应用程序进行交互。本篇将深入探讨自定义手势(gesture)和手势识别,特别是如何...
在Android平台上,触屏手势识别是用户交互设计的重要组成部分,它极大地丰富了用户与设备的交互方式,使得操作更加直观和便捷。`GestureTest.zip`这个压缩包包含了一个关于Android触屏手势识别的示例项目,我们可以...
Android SDK中提供了一个名为`GestureOverlayView`的组件,它可以帮助我们轻松地集成手势识别功能。`GestureOverlayView`可以捕获手势并将其转换为`Gesture`对象,然后通过`GestureLibrary`进行识别。开发者只需要...