Android手势识别

原创 2016年05月31日 22:39:40

识别上下左右滑动就要使用GestureDetector

1.声明GestureDetector.对象

2.实现手势识别方法onFling

3.在onTouchEvent中为GestureDetector传入事件

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;

import com.itheima.mobilesafe.R;

public abstract class BaseSetupActivity extends Activity {

	//声明手势识别对象
	private GestureDetector gestureDetector;
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//实现手势识别方法
		gestureDetector  = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener(){

			/* 
			 * e1 手机触摸时按下的事件,从它里面获得事件所有的信息
			 * e2 手机触摸时抬起的事件,从它里面获得事件所有的信息
			 * velocityX 在水平方向移动的速度(每秒多个像素)
			 * velocityY 在水平方向移动的速度(每秒多个像素)
			 */
			@Override
			public boolean onFling(MotionEvent e1, MotionEvent e2,
					float velocityX, float velocityY) {
				int startX = (int) e1.getRawX();
				int endX = (int) e2.getRawX();
				
				if(Math.abs(velocityX) < 10){
					Toast.makeText(BaseSetupActivity.this, "哥,滑动的快动快一点嘛", 0).show();
					return true;
				}
					
				if((endX - startX) >= 200){
					//显示前一个界面
					pre(null);
					return true;
				}
				
				if((startX - endX) >= 200){
					//显示后一个界面
					next(null);
					return true;
				}
				
				return super.onFling(e1, e2, velocityX, velocityY);
			}
			
		});

	}
	
	/**
	 * 触摸事件
	 */
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		//触摸事件传入手势识别器
		gestureDetector.onTouchEvent(event);
		return super.onTouchEvent(event);
	}


	/**
	 * 留给子类来实现
	 * @param view
	 */
	public abstract void next(View view);
	
	/**
	 * 留给子类来实现
	 * @param view
	 */
	public abstract void pre(View view);
	
}


版权声明:本文为博主原创文章,转载请注明出处

Android手势识别详解

一、使用GestureDetector进行手势识别 手势交互过程(原理): 1、触屏一刹那,触发MotionEvent事件 2、被OnTouchListener监听,在onTouch()中获得Moti...
  • c19344881x
  • c19344881x
  • 2015年02月26日 15:22
  • 2339

Android基础系列 - 手势识别、运用(一)

Android开发中,几乎所有的事件都会和用户进行交互,而最多的交互形式就是手势了。也有很多手势三方的库。比如 android-gesture-detectors 、AndroidPdfViewer...
  • sw5131899
  • sw5131899
  • 2017年04月18日 17:13
  • 540

Android成长之路-手势识别的实现

手势识别系统: 先把手势库放到项目中:(创建手势库见下一篇博客) 在res文件夹下新建一个名为raw的文件夹,然后把手势库放进去   然后开始项目的创建:   strings.xml: ...
  • like7xiaoben
  • like7xiaoben
  • 2012年01月03日 14:30
  • 3680

Android Gesture 手势识别使用实例

很高兴能在Android1.6的sdk看到手势识别这一功能,之前一直在想,如何在android中实现nds游戏那样用手势(准确点应该是笔势)来控制游戏角色?现在总算看到一点曙光了,不过手势要做到笔势那...
  • java_zhaoyanli
  • java_zhaoyanli
  • 2015年05月25日 20:04
  • 729

Android手势识别GestureDetector详解

一、概述当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等。一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onT...
  • zhangyalong_android
  • zhangyalong_android
  • 2017年04月07日 11:54
  • 1113

Android手势识别器GestureDetector

以前只知道控件的onTouchEvent()事件,它的动作有MotionEvent.ACTION_DOWN、MotionEvent.ACTION_MOVE、MotionEvent.ACTION_UP;...
  • yangshuangyue
  • yangshuangyue
  • 2016年12月08日 18:32
  • 1414

基于单 camera的手势识别

手势识别算法,无版权
  • wscem
  • wscem
  • 2014年07月29日 08:46
  • 2206

Android手势识别Demo

//**MainActivity.java** package com.study.geslockdemo;import android.app.Activity; import android.co...
  • u012246348
  • u012246348
  • 2016年04月09日 20:02
  • 785

android开发之手势识别

android开发之手势识别
  • u012702547
  • u012702547
  • 2015年05月14日 22:54
  • 6524

复杂背景下的手势识别应用于Android手机相册

采用了HOG+SVM的方法对4种手势进行识别,即采用梯度方向直方图(histograms of oriented gradient,HOG)用于提取手势特征,采用支持向量机(support vecto...
  • ichangjian
  • ichangjian
  • 2013年09月12日 18:36
  • 2460
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android手势识别
举报原因:
原因补充:

(最多只允许输入30个字)