简单的安卓手势处理类

原创 2015年11月19日 17:50:28
package com.example.activity;

import android.content.Context;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.Toast;

/**
 * @fileName HandyGesturer.java
 * @version 1.0
 * @date 2015-11-19 下午4:44:42
 * @description
 * 智能的手势处理类
 * 
 */
public class HandyGesturer {
	private HandyGestureListener listener = null;
	private Context context;
	private float maxSideLength = 50.0F;
	public HandyGesturer(Context context, HandyGestureListener listener,
			float maxSideLength) {
		super();
		this.listener = listener;
		this.context = context;
		this.maxSideLength = maxSideLength;
	}
	public HandyGesturer( Context context, HandyGestureListener listener) {
		super();
		this.listener = listener;
		this.context = context;
	}
	/**
	 * @return the listener
	 */
	public HandyGestureListener getListener() {
		return listener;
	}
	/**
	 * @param listener the listener to set
	 */
	public void setListener(HandyGestureListener listener) {
		this.listener = listener;
	}
	/**
	 * @return the maxSideLength
	 */
	public float getMaxSideLength() {
		return maxSideLength;
	}
	/**
	 * @param maxSideLength the maxSideLength to set
	 */
	public void setMaxSideLength(float maxSideLength) {
		this.maxSideLength = maxSideLength;
	}
	public interface HandyGestureListener{
		void onSideUp();
		void onSideDown();
		void onSideLeft();
		void onSideRight();
	}
	private float x1 = 0;
	private float x2 = 0;
	private float y1 = 0;
	private float y2 = 0;
	public void dealWithTouchEvent(MotionEvent event){
		if(listener == null){
			throw new NullPointerException("HandyGestureListener is null!");
		}
		switch (event.getAction()) {
		
		case MotionEvent.ACTION_DOWN:
			x1 = event.getX();
			y1 = event.getY();
			break;
		case MotionEvent.ACTION_UP:
			x2 = event.getX();
			y2 = event.getY();
			if(y1 - y2 > maxSideLength) {
				listener.onSideUp();
			} else if(y2 - y1 > maxSideLength) {
				listener.onSideDown();
			} else if(x1 - x2 > maxSideLength) {
				listener.onSideLeft();
			} else if(x2 - x1 > maxSideLength) {
				listener.onSideRight();
			}
			break;
		default:
			break;
		}

	}
}



<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">
</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用很简单。</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">
</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="java">package com.example.activity;



import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;

import com.example.activity.HandyGesturer.HandyGestureListener;


public class MainActivity extends Activity  implements HandyGestureListener{


	HandyGesturer gesturer;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		gesturer = new HandyGesturer(this, this, 50);
	
	}
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		gesturer.dealWithTouchEvent(event);
		return super.onTouchEvent(event);
	}

	@Override
	public void onSideUp() {
		System.out.println("onUp");
		
	}

	@Override
	public void onSideDown() {
		System.out.println("onDown");
	}

	@Override
	public void onSideLeft() {
		System.out.println("onLeft");
	}

	@Override
	public void onSideRight() {
		System.out.println("onRight");
	}

	

	



}




实例化手势处理类,并且设置一个监听器就行了。

安卓手势登陆

  • 2015年07月06日 15:18
  • 3.4MB
  • 下载

安卓手势放大缩小相机

  • 2017年03月17日 14:36
  • 109KB
  • 下载

基于webview的安卓app图片支持手势缩放,双击放大,缩小

这是我的第一篇博客,写的不好请大家见谅,能帮到你是最好的,不能帮到你请你也了解一下       我们的安卓程序有时候是基于webview用js和h5来编写的,那么图片支持双击放大、缩小是可以做到的;...
  • ydrslyh
  • ydrslyh
  • 2016年05月05日 10:29
  • 1641

安卓学习(二) 手势识别

安卓学习(二) 手势识别摘要: 用户与手机交互的方式与PC不一样,没有鼠标,键盘,主要是依靠手势,因此手势的学习对于android开发很必要。本文主要介绍关于android手势识别的内容,首先是系统内...

安卓手势解锁源码-Demo源码

  • 2016年08月22日 17:45
  • 99KB
  • 下载

仿qq安卓客户端实现消息数目手势拖拽删除效果

先上个效果:源码可以看这里想试试效果的话可以直接通过gradle引入:allprojects { repositories { jcenter() maven ...

安卓 手势操作的小demo

  • 2015年09月14日 12:17
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单的安卓手势处理类
举报原因:
原因补充:

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