文档章节

android 手势识别!

这些年了1990
 这些年了1990
发布于 2014/03/25 15:33
字数 332
阅读 45
收藏 0
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.Toast;

public class MainActivity extends Activity implements GestureDetector.OnGestureListener{
	
	private GestureDetector detector;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		detector = new GestureDetector(this, this);
		
		detector.setOnDoubleTapListener(new OnDoubleTapListener() {
			
			public boolean onSingleTapConfirmed(MotionEvent e) {
				System.out.println("onSingleTapConfirmed"); 
				return false;
			}
			
			public boolean onDoubleTapEvent(MotionEvent e) {
				System.out.println("onDoubleTapEvent"); 
				return false;
			}
			
			public boolean onDoubleTap(MotionEvent e) {
				System.out.println("onDoubleTap");
				return false;
			}
		});
	}
 
	public boolean onTouchEvent(MotionEvent event){
		System.out.println("onDoubleTap");
		return detector.onTouchEvent(event);
	}
	
	public boolean onDown(MotionEvent e) {
//		Intent  intent=new Intent();
//		intent.setClass(MainActivity.this, StartActivity.class);
//		startActivity(intent);
//		finish();
//		System.out.println("onDown");
		return false;
	}

	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {
		if (e1.getX() - e2.getX() > 200&& Math.abs(velocityX) > 20) {// Fling left
			    System.out.println("Fling Left");
			  Toast.makeText(this, "Fling Left", Toast.LENGTH_SHORT).show();
			  } else if (e2.getX() - e1.getX() > 200&& Math.abs(velocityX) > 20) {   // Fling right
				 System.out.println("Fling Right"); 
			    Toast.makeText(this, "Fling Right", Toast.LENGTH_SHORT).show();
			  } else if (e2.getY() - e1.getY() > 200&& Math.abs(velocityY) > 20) {   //Fling down
				 System.out.println("Fling down");
				Toast.makeText(this, "Fling down", Toast.LENGTH_SHORT).show();
			  } else if (e1.getY() - e2.getY() > 200&& Math.abs(velocityY) > 20) {   //Fling up
				 System.out.println("Fling up");
				Toast.makeText(this, "Fling up", Toast.LENGTH_SHORT).show();
			  }
		
				 return false;
	}

	public void onLongPress(MotionEvent e) {
		  System.out.println("onLongPress");
	}

	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,float distanceY) {
		if (e1.getX() - e2.getX() > 200&& Math.abs(distanceX) > 20) {// Scroll left
			System.out.println("Scroll Left");
		    Toast.makeText(this, "Scroll Left", Toast.LENGTH_SHORT).show();
		  } else if (e2.getX() - e1.getX() > 200&& Math.abs(distanceX) > 20) {   // Scroll right
			 System.out.println("Scroll Right");
		     Toast.makeText(this, "Scroll Right", Toast.LENGTH_SHORT).show();
		  } else if (e2.getY() - e1.getY() > 200&& Math.abs(distanceY) > 20) {   //Scroll down
			 System.out.println("Scroll down");
			 Toast.makeText(this, "Scroll down", Toast.LENGTH_SHORT).show();
		  } else if (e1.getY() - e2.getY() > 200&& Math.abs(distanceY) > 20) {   //Scroll up
			 System.out.println("Scroll up");
			Toast.makeText(this, "Scroll up", Toast.LENGTH_SHORT).show();
		  }
		 
		 System.out.println("onScroll");
		return false;
	}

	public void onShowPress(MotionEvent e) {
		System.out.println("onShowPress");
	}

	public boolean onSingleTapUp(MotionEvent e) {
		System.out.println("onSingleTapUp");
		return false;
	}
		
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	



}


© 著作权归作者所有

这些年了1990

这些年了1990

粉丝 10
博文 54
码字总数 13607
作品 0
徐汇
程序员
私信 提问
Android 手势(Gesture)

一、什么是手势? 所谓手势,其实就是指用户手指或触摸笔在触摸屏上的连续触碰行为,比如在屏幕上葱左至右划出一个动作,就是手势,再比如在屏幕上画一个圆圈也是一个手势,手势这种连续的触...

让代码飞一会
2015/07/13
0
1
【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!

李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/337.html 很多童鞋说我的代码运行后,点击home或者back后会程序异常,...

迷途d书童
2012/03/19
0
0
Android手势学习之单点手势

最后更新:2012-03-20 参考自:《Android移动开发一本就够》 说在前面,很早时,android就开始有支持单点手势(单点触控),到android2.2开始支持多点触控. 不同的动作序列合起来表示不同的手势...

李海珍
2012/03/13
0
2
毕业设计11(地图主界面的touch操作)

年前想要实现一个功能:在点击地图上的信息点之后能够弹出另一个activity显示这个信息点的具体信息,但是我发现GraphicsLayer的setOnClickListener并不是针对每一个graphic,而是针对整个gra...

土匪强
2012/01/25
0
0
Webview中无法触发手势方法(ontouchevent,onfling...)的解决方法

Android 开发-Android开发论坛推荐:http://www.eoeandroid.com/ 悲催的写代码的路上总是遇到各种各样的问题,这不又碰到了一个头疼的问题!关于Webview中无法触发手势方法的解决方法,我在一...

小雪花
2013/10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

import java.util.Arrays; public class Solution { public int MoreThanHalfNum_Solution(int [] array) { Arrays.sort(array); int count=0; for(int i=0;i<array.le......

南桥北木
12分钟前
0
0
关于FLAG_ACTIVITY_NEW_TASK的使用

参考文章: https://blog.csdn.net/u010389391/article/details/78558475 Context调用startActivity, 有部分情况会报出如下错误: Caused by: android.util.AndroidRuntimeException: Calli......

Gemini-Lin
28分钟前
0
0
Python开发工具:Webware for Python

原文来之:https://www.oschina.net/p/webware+for+python 前言 Webware for Python 是一组 Python 包和工具用来开发面向对象的 Web 应用。良好的设计模式,包含一个快速的应用服务器、Servl...

A_裙232550246
37分钟前
0
0
高并发场景下的缓存有哪些常见的问题?

一、缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。 这就比较依赖缓存的过期和更新...

别打我会飞
51分钟前
3
0
List list = new ArrayList()为何父类引用指向子类对象(多态)

态:要有继承,方法的重写,父类引用指向子类对象 疑问一:父类引用指向子类对象 与指向父类对象 Animal cat = new Cat(); //向上转型。 父类引用指向子类对象,该引用不能再访问子类新增加的...

architect刘源源
52分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部