`
gryphone
  • 浏览: 433612 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

手势识别

阅读更多
手势识别

[功能]
何为手势识别? 比如:你在屏幕上从左至右划出的一个动作 这就是手势 能够识别这个的就是 手势识别

[思路]
1. android 有一个手势识别的类:OnGestureListener
2. 在 GestureDetector() 中使用上面的class 即可 系统就会把手势交由该类来处理


[代码]
1. 该类的定义
public class SampleGuest implements OnGestureListener {
		Activity activity;
		
		public SampleGuest(Activity a){
			activity = a;
		}
	
	    // called automatically, any screen action will Triggered it
	    public boolean onTouchEvent(MotionEvent me){
	    	return gesture.onTouchEvent(me);
	    }

		@Override
		public boolean onDown(MotionEvent e) {
			// TODO Auto-generated method stub
			Log.d("TAG","[+++++++++++][onDown]");
			return true;
		}

		@Override
		//e1, the begin of ACTION_DOWN MotionEvent
		//e2, the end of ACTION_DOWN MotionEvent
		// velocityX, the motion speed in X
		// velocityY:the motion speed in y
		public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
				float velocityY) {
			// TODO Auto-generated method stub
			if ((e1.getX() - e2.getX() > VALUE_DISTANCE)
	    			&& Math.abs(velocityX) > VALUE_SPEED) {
	    		Log.d("TAG","[+++++++++++][onFling][Fling left]");
	    	} else if ((e2.getX() - e1.getX() > VALUE_DISTANCE)
	    			&& Math.abs(velocityX) > VALUE_SPEED) {
	    		Log.d("TAG","[+++++++++++][onDown][Fling right]");

	    	}
			return true;
		}

		@Override
		public void onLongPress(MotionEvent e) {
			// TODO Auto-generated method stub
			Log.d("TAG","[+++++++++++][onLongPress]");
		}

		@Override
		public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
				float distanceY) {
			// TODO Auto-generated method stub
			Log.d("TAG","[+++++++++++][onScroll]");
			return true;
		}

		@Override
		public void onShowPress(MotionEvent e) {
			// TODO Auto-generated method stub
			Log.d("TAG","[+++++++++++][onShowPress]");
		}

		@Override
		public boolean onSingleTapUp(MotionEvent e) {
			// TODO Auto-generated method stub
			Log.d("TAG","[+++++++++++][onSingleTapUp]");
			return true;
		}
		
	}

(大家可以自己做一些手势 然后看 LogCat 就会知道是什么手势了)


2. 如何使用
SampleGuest sg = new SampleGuest(this);
GestureDetector gesture = new GestureDetector(sg);



over!


分享到:
评论
3 楼 12werrrrrrr 2010-12-07  
像scroller等控件 怎么在其上层获得Motion Event 而又不影响Scroller的功能。
2 楼 BarryWei 2010-01-18  
引用
请教下:传闻2.1开始支持多点触摸了,有相关文档或者实现代码吗?


2.1确实可以支持多点触摸,但是实现了该功能的手机少。

就拿Google最新的Nexus One来说,欧版的就支持,其他版本就不支持了。

1 楼 1986zzrobin 2010-01-18  
请教下:传闻2.1开始支持多点触摸了,有相关文档或者实现代码吗?

PS:帮助补充些注解
// 用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发
public boolean onDown(MotionEvent e){}

// 用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 
//多个ACTION_MOVE, 1个ACTION_UP触发
// e1:第1个ACTION_DOWN MotionEvent
// e2:最后一个ACTION_MOVE MotionEvent
// velocityX:X轴上的移动速度,像素/秒
// velocityY:Y轴上的移动速度,像素/秒
// 触发条件 :
// X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MIN_VELOCITY个像素/秒
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY){}

// 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发
public void onLongPress(MotionEvent e)

// 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,float distanceY)

// 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发
// 注意和onDown()的区别,强调的是没有松开或者拖动的状态
public void onShowPress(MotionEvent e)

// 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发
public boolean onSingleTapUp(MotionEvent e)

相关推荐

    matlab手势识别,matlab手势识别代码,matlab

    在本文中,我们将深入探讨如何使用MATLAB进行手势识别,这是一种在计算机视觉和人工智能领域具有广泛应用的技术。MATLAB(矩阵实验室)以其强大的数值计算和数据分析能力而闻名,它也提供了丰富的图像处理工具箱,...

    基于matlab的手势识别.rar_matlab 手势_手势识别MATLAB_手势识别器_石头剪刀布_简单手势识别

    【基于MATLAB的手势识别系统】是一个利用计算机视觉和机器学习技术进行手势识别的应用实例,主要针对"剪刀"、"石头"、"布"三种手势。在MATLAB环境中实现这样的系统,涉及到多个IT领域的核心知识点,包括图像处理、...

    基于YOLOv5的手势识别系统(含手势识别数据集 训练代码).txt

    本篇博客,将基于YOLOv5搭建一个手势识别目标检测系统,支持one,two,ok等18种常见的通用手势动作识别,目前基于多目标检测的手势识别方法YOLOv5s的平均精度平均值mAP_0.5=0.99569,mAP_0.5:0.95=0.87605,基本满足...

    array3.zip_MATLAB手势识别_手势_手势算法_手势识别_手势识别算法

    标题中的“array3.zip_MATLAB手势识别_手势_手势算法_手势识别_手势识别算法”表明这是一个关于MATLAB实现的手势识别项目的压缩包文件。这个项目聚焦于开发和应用手势识别算法,旨在通过计算机视觉技术理解和解析...

    Unity实现简单手势识别

    在Unity游戏开发中,手势识别是一项重要的功能,它允许玩家通过特定的手势与游戏互动,增强游戏体验。本文将详细讲解如何使用Unity实现一个简单的手势识别系统,主要涉及的编程语言是C#。 首先,创建一个新的C#脚本...

    手势识别 源码 可执行程序

    手势识别技术是计算机视觉领域中的一个重要分支,它主要用于理解和解析人类的手势动作,进而实现人机交互。在给定的标题和描述中,我们可以提取出几个关键知识点:手势识别、图像处理、HOG(Histogram of Oriented ...

    matlab手势识别_MATLAB手势识别_matlab手势识别_tightk1r_识别手势_手势识别MATLAB

    在本文中,我们将深入探讨如何使用MATLAB进行手势识别,主要参考了名为“matlab手势识别”的项目,由用户tightk1r创建。这个项目旨在为初学者提供一个简单的起点,让他们了解并实践如何利用MATLAB实现手势识别技术。...

    手势识别数据提取,手势识别技术,matlab

    手势识别技术是现代人机交互领域的一个重要研究方向,它允许用户通过自然的手势来控制电子设备,无需物理接触,增强了交互的直观性和便捷性。本项目主要关注使用超声波进行手势识别,并且利用MATLAB进行数据处理和...

    29,ATK-PAJ7620手势识别模块资料,paj7620u2手势识别原理,C,C++

    ATK-PAJ7620手势识别模块是一款基于PAJ7620U2芯片的手势识别解决方案,常用于物联网(IoT)设备、智能家居、智能玩具等领域的交互设计。该模块允许用户通过简单的手势操作来控制电子设备,提高了人机交互的便捷性和...

    基于Python+Open CV的手势识别算法设计

    【基于Python+Open CV的手势识别算法设计】 随着人工智能技术的发展,人机交互变得日益重要,手势识别成为了其中的关键技术之一。手势识别广泛应用于手语识别、智能监控、虚拟现实等多个领域,通过摄像头等传感器...

    易实现的手势识别源代码

    【手势识别技术详解】 手势识别是一种利用计算机视觉技术解析人类手部动作的技术,它在人机交互、虚拟现实、智能设备等领域有着广泛的应用。在这个项目中,我们将使用Python编程语言结合Mediapipe库和OpenCV库来...

    手势识别.rar_SVM手势识别_图像识别_手势识别_数据识别svm_雷达 手势

    手势识别技术是现代人机交互领域中的重要组成部分,特别是在物联网、智能家居、智能汽车以及虚拟现实等领域有着广泛应用。本文将深入探讨基于SVM(支持向量机)的手势识别方法,结合雷达信号采集与图像处理技术。 ...

    手势识别,PYTORCH YOLO5,能识别常见的手势

    手势识别是一种计算机视觉技术,它允许系统理解和解析人类手部动作和手势,从而实现与机器的非接触式交互。在本项目中,我们利用了PYTORCH框架中的YOLOv5模型来实现这一功能。YOLO(You Only Look Once)是目标检测...

    yolov3手势识别权重+数据集

    yolov3手势识别权重,包含6000张yolo算法手势识别数据集,划分好 train,val, test,并附有data.yaml文件,yolov5、yolov7、yolov8,yolov9等算法可以直接进行训练模型,txt格式标签, 数据集和检测结果参考:...

    YOLOV5手势识别数据集+代码+模型 2000张标注好的数据+教学视频

    2.手势识别数据集,支持[ 'A', 'number 7', 'D', 'I', 'L', 'V', 'W', 'Y', 'I love you', 'number 5' ]10种手势的识别 3. 提供3组训练好的YOLOV5模型 4.代码中包含图形化界面 5.提供B站视频教程:...

    yolo5手势识别数据集+模型-.zip

    在这个“yolo5手势识别数据集+模型-.zip”压缩包中,包含了用于手势识别任务的资源,这将帮助我们理解如何利用YOLOv5进行特定对象的检测——即手势的识别。 首先,数据集是机器学习和深度学习模型的基础。这里提供...

    基于惯性传感器MPU6050的手势识别方法.pdf

    这些方案包括基于笔的手势识别、数据手套的手势识别、基于微机电系统(MEMS)惯性传感器的手势模式识别、基于视觉的手势识别和基于图像的手势识别等。随着微电子技术的快速发展,32位微控制器普遍具备浮点运算单元(FPU...

    HOG+SVM手势识别可运行程序,识别车

    手势识别是一种计算机视觉技术,它允许系统理解和解释人类手势,以进行无触碰式交互或控制。在本项目中,“HOG+SVM手势识别可运行程序”是用于识别特定手势,特别是与“车”相关的手势。这个程序的核心是利用...

    C8T6-9960_红外手势识别_9960_能识别上扬_红外手势_下滑_红外手势识别资料_源码.zip

    标题中的"C8T6-9960"可能是指一种特定的硬件平台或者模块,而"红外手势识别"则是该技术的主题。这个压缩包显然包含了关于如何使用9960设备进行红外手势识别的技术文档、源代码和其他相关资源。9960可能是一款集成了...

    人工智能-matlab-基于matlab和计算机视觉实现的手势识别

    在当前的数字化时代,人工智能(AI)已经成为科技发展的重要领域,而手势识别是人机交互的一个关键部分。本文将深入探讨如何使用MATLAB这一强大的计算平台,结合计算机视觉技术,来实现手势识别。 MATLAB(矩阵实验...

Global site tag (gtag.js) - Google Analytics