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

在开发android程序时,有时会需要监测手指滑动屏幕,当手指朝上下左右不同方向滑动时做出不同的响应,那怎么去实现呢?

利用Android提供的手势监测器就可以很方便的实现,直接上代码(已测试通过)

public class CbMainActivity extends Activity implements  android.view.GestureDetector.OnGestureListener
{
	//定义手势检测器实例
	GestureDetector detector;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cb_main);
        //创建手势检测器
        detector = new GestureDetector(this,this);
    }

    //将该activity上的触碰事件交给GestureDetector处理
    public boolean onTouchEvent(MotionEvent me){
    	return detector.onTouchEvent(me);
    }

	@Override
	public boolean onDown(MotionEvent arg0) {
		return false;
	}

	/**
	 * 滑屏监测
	 *
	 */
	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		float minMove = 120;         //最小滑动距离
		float minVelocity = 0;      //最小滑动速度
		float beginX = e1.getX();
		float endX = e2.getX();
		float beginY = e1.getY();
		float endY = e2.getY();

		if(beginX-endX>minMove&&Math.abs(velocityX)>minVelocity){   //左滑
			Toast.makeText(this,velocityX+"左滑",Toast.LENGTH_SHORT).show();
		}else if(endX-beginX>minMove&&Math.abs(velocityX)>minVelocity){   //右滑
			Toast.makeText(this,velocityX+"右滑",Toast.LENGTH_SHORT).show();
		}else if(beginY-endY>minMove&&Math.abs(velocityY)>minVelocity){   //上滑
			Toast.makeText(this,velocityX+"上滑",Toast.LENGTH_SHORT).show();
		}else if(endY-beginY>minMove&&Math.abs(velocityY)>minVelocity){   //下滑
			Toast.makeText(this,velocityX+"下滑",Toast.LENGTH_SHORT).show();
		}

		return false;
	}

	@Override
	public void onShowPress(MotionEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public boolean onSingleTapUp(MotionEvent arg0) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public void onLongPress(MotionEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {

		return false;
	}

}
时间: 2024-10-22 07:36:04

Android监测手指上下左右滑动屏幕的相关文章

Android 播放电影时滑动屏幕调整屏幕亮度(转)

(转自:http://blog.csdn.net/piaozhiye/article/details/6544450) 发现有一些主流的播放器播放电影时可以通过滑动屏幕调整屏幕亮度,其实实现起来也很容易. 主要根据滑动的方向来设置屏幕亮度,以下这个demo实现向上滑动屏幕变亮,向下滑动则屏幕变暗.当的屏幕达到最亮或最暗(20%)的时候,设备会震动,代码简单,不多说. 同时设备震动需要有权限 <uses-permission android:name="android.permission.

Android 中利用ViewFlipper 滑动屏幕切换页面,ListView展示数据

首先新建一个Android项目,命名为ViewFlipperTest 如图:项目机构,本项目主要操作图中红色箭头标注的文件 1.HgroupAdapter.java文件代码↓主要实现listview数据适配器的定义 1 package com.hll.ViewFlipperTest; 2 3 import java.util.List; 4 5 import android.content.Context; 6 import android.view.LayoutInflater; 7 impo

Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现(2):后续改进

?? Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现(2):后续改进 附录文章1虽然实现了在屏幕左半边随手指上滑/下滑实现明暗度的调节,但是有一个不完美的地方:当手指在屏幕左半边水平左滑/右滑时候,也一样会触发明暗度的调节.这是不完美的,假设当前的那个view是一个视频播放器view,如果用户的手指在水平方向左滑/右滑,显然,意图是快进/快退,而不是调整明暗度,所以需要对附录文章1的代码改进,实现正确的逻辑.需要改进的地方集中在dispatchTouchEvent,改进

Android上下左右滑动,显示底层布局

转载博客地址:http://www.cnblogs.com/flyme2012/p/4106308.html 闲着没事做了一个小东西.Android的上下左右滑动,显示底层布局.可以做类似于QQ消息列表的删除功能. 看效果: 实现基本原理: 前段时间学习了一下ViewDragHelper类,大概的就是通过这个类来控制的上下左右的滑动,方便的很多啊,也是很简单的代码,可以参考 我之前的关于ViewDragHelper的博客文章,这里面主要做的工作就是对触摸事件的传递,需要将触摸事件传递给底层的布局

android开发步步为营之71:CoordinatorLayout+AppBarLayout+RecyclerView+ViewPager打造可上下左右滑动的App主框架

在看过很多app之后,你会发现现在很多的app的主框架是可以上下左右滑动,左右滑动,我们自然会想到用viewpager,但是上下可以滑动,而且顶部广告或者背景划上去之后,还需要保留tab标签用什么来实现?查阅过很多资料,最终发现sdk里面android support v7有CoordinatorLayout+AppBarLayout+RecyclerView,两个组件组合可以支持上下滑动效果,另外CoordinatorLayout+AppBarLayout+NestedScrollView也可

手指滑动屏幕原理

//手指按下屏幕的点,抬起手指的点,按下的时间,抬起的时间 var startPoint=0; endPoint=0; startTime=0;   endTime=0; //touchstart事件 $(".xx").on("touchstart",function(event){ //每次重新滑动要清除上一次手指抬起的位置和时间 endPoint=0; endtime=0; startPoint=event.touches[0].clientY; startTi

Android中使用ViewFlipper实现屏幕切换

屏幕切换指的是在同一个Activity内屏幕间的切换,ViewFlipper继承了Framelayout类,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果.如下动图: 该类有如下几个和动画相关的函数: setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation:一个接受两个参数,类型为Context和int,分别为Context对象和定义An

Android重写ViewPager修改滑动灵敏度

使用ViewPager作为一个页面进行切换,里面可以存放很多View,但有时在操作View时不小心滑动一下就有可能跳到下一页,这并不是我们想要的,这里就需要重写ViewPager修改它的滑动条件 效果图 程序目录结构 BTViewPager.java package com.example.viewpagerdemo; import android.content.Context; import android.support.v4.view.ViewPager; import android.

Android上下菜单双向滑动实现

这是研究了网上大神双向左右滑动后实现的上下双向滑动特效,有兴趣的朋友可以看下面代码,注释很详细,原理就是根据手指滑动的方向,来将上下两个布局进行显示与隐藏.主要用了onTouch方法,获取滑动的距离进行偏移. import android.content.Context; import android.os.AsyncTask; import android.util.AttributeSet; import android.view.MotionEvent; import android.vi