监听手指左右滑动屏幕的事件,封装好了一个类

原创 2014年03月31日 06:07:39

左右滑动是智能手机最常用的动作,在此简单的封装了一下,以后直接拿来用就可以了。


简单的只需要几行就可以了,下面那个类是封装好了的。

package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);//这里的xml是一个空白的layout
		
		//需要监听左右滑动事件的view
		RelativeLayout view = (RelativeLayout) this.findViewById(R.id.layout);
		
		//setLongClickable是必须的
		view.setLongClickable(true);
		view.setOnTouchListener(new MyGestureListener(this));
	}
	
	/**
	 * 继承GestureListener,重写left和right方法
	 */
	private class MyGestureListener extends GestureListener {
		public MyGestureListener(Context context) {
			super(context);
		}

		@Override
		public boolean left() {
			Log.e("test", "向左滑");
			return super.left();
		}

		@Override
		public boolean right() {
			Log.e("test", "向右滑");
			return super.right();
		}
	}
}

package com.example.test;

import android.content.Context;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.GestureDetector;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.MotionEvent;

/**
 * 实现监听左右滑动的事件,哪个view需要的时候直接setOnTouchListener就可以用了
 * @author LinZhiquan
 *
 */
public class GestureListener extends SimpleOnGestureListener implements OnTouchListener {
	/** 左右滑动的最短距离 */
	private int distance = 100;
	/** 左右滑动的最大速度 */
	private int velocity = 200;
	
	private GestureDetector gestureDetector;
	
	public GestureListener(Context context) {
		super();
		gestureDetector = new GestureDetector(context, this);
	}

	/**
	 * 向左滑的时候调用的方法,子类应该重写
	 * @return
	 */
	public boolean left() {
		return false;
	}
	
	/**
	 * 向右滑的时候调用的方法,子类应该重写
	 * @return
	 */
	public boolean right() {
		return false;
	}
	
	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		// TODO Auto-generated method stub
		// e1:第1个ACTION_DOWN MotionEvent
		// e2:最后一个ACTION_MOVE MotionEvent
		// velocityX:X轴上的移动速度(像素/秒)
		// velocityY:Y轴上的移动速度(像素/秒)

		// 向左滑
		if (e1.getX() - e2.getX() > distance
				&& Math.abs(velocityX) > velocity) {
			left();
		}
		// 向右滑
		if (e2.getX() - e1.getX() > distance
				&& Math.abs(velocityX) > velocity) {
			right();
		}
		return false;
	}

	@Override
	public boolean onTouch(View v, MotionEvent event) {
		// TODO Auto-generated method stub
		gestureDetector.onTouchEvent(event);
		return false;
	}

	public int getDistance() {
		return distance;
	}

	public void setDistance(int distance) {
		this.distance = distance;
	}

	public int getVelocity() {
		return velocity;
	}

	public void setVelocity(int velocity) {
		this.velocity = velocity;
	}

	public GestureDetector getGestureDetector() {
		return gestureDetector;
	}

	public void setGestureDetector(GestureDetector gestureDetector) {
		this.gestureDetector = gestureDetector;
	}
}



版权声明:本文为博主原创文章,转载请注明原地址。

用Activity的onTouchEvent方法实现监听手指上下左右滑动

用Activity的onTouchEvent方法实现监听手指上下左右滑动 应用了Activity的ontouchEvent方法监听手指点击事件,手指滑动的时候会先按下,滑倒另一个地方再抬起,...
  • qiantujava
  • qiantujava
  • 2013年08月11日 19:27
  • 32944

Android开发:监听当前View的左右滑动事件,并返回给当前的activity或者fragment

之前在使用网易新闻的时候,左右滑动页面可以打开和关闭新的页面,对于这个功能一直很喜欢,刚好今天有空,工作不忙,于是就抽空把这个功能写出来了,其实用到的都是很简单的手势监听api,加入了一些判断,核心代...
  • weidongjian
  • weidongjian
  • 2014年12月23日 10:25
  • 3462

屏幕的上下左右滑动监听事件详解demo

  • 2016年04月07日 16:56
  • 1.41MB
  • 下载

Excel表格项目,可以上下左右滑动,点击事件都已集成好了,非常nice的一款项目

  • 2016年05月12日 21:45
  • 22.48MB
  • 下载

用Activity的onTouchEvent方法实现监听手指上下左右滑动

用Activity的onTouchEvent方法实现监听手指上下左右滑动。 应用了Activity的ontouchEvent方法监听手指点击事件,手指滑动的时候会先按下,滑倒另一个地方再抬起,我们就...
  • Jungle_hello
  • Jungle_hello
  • 2016年06月11日 13:31
  • 643

用Activity的onTouchEvent方法实现监听手指上下左右滑动

用Activity的onTouchEvent方法实现监听手指上下左右滑动
  • yueyaquanBoy
  • yueyaquanBoy
  • 2014年04月21日 13:37
  • 428

用Activity的onTouchEvent方法实现监听手指上下左右滑动

用Activity的onTouchEvent方法实现监听手指上下左右滑动 应用了Activity的ontouchEvent方法监听手指点击事件,手指滑动的时候会先按下,滑倒另一个地方再抬...
  • zhaokai621
  • zhaokai621
  • 2016年06月15日 14:59
  • 2449

Android监测手指上下左右滑动屏幕

在开发android程序时,有时会需要监测手指滑动屏幕,当手指朝上下左右不同方向滑动时做出不同的响应,那怎么去实现呢? 利用Android提供的手势监测器就可以很方便的实现,直接上代码(已测试通过)...
  • u012116457
  • u012116457
  • 2015年05月25日 20:40
  • 2587

Android监测手指上下左右滑动屏幕

在开发android程序时,有时会需要监测手指滑动屏幕,当手指朝上下左右不同方向滑动时做出不同的响应,那怎么去实现呢? 利用Android提供的手势监测器就可以很方便的实现,直接上代码(已测试通过)...
  • asdf717
  • asdf717
  • 2016年07月07日 17:19
  • 1984

移动端touch事件---利用bootstrap实现轮播图手指左右滑动事件

还记的我上篇文章实现了图片响应式滑动,如果不知道怎样实现图片在超宽屏幕居中显示,且也不知道怎样实现图片的响应式效果(专门针对移动端的),可以再继续看看我写的这篇文章。狠狠地点击这里那么针对移动端,如何...
  • diligentkong
  • diligentkong
  • 2017年07月11日 17:31
  • 4953
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:监听手指左右滑动屏幕的事件,封装好了一个类
举报原因:
原因补充:

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