android 触摸监听重写_Android监听屏幕的滑动事件

本文介绍了如何在Android中简单实现监听屏幕的上下左右滑动事件,通过继承GestureDetector的SimpleOnGestureListener并重写onFling方法,实现滑动逻辑。避免了不必要的复杂代码,简化了监听屏幕滑动的操作。
摘要由CSDN通过智能技术生成

实现监听屏幕上下左右滑动事件

前段时间为了实现这个功能在网上找了很多教程,发现很多教程都是很大的篇幅,对于像我这种一点都不了解的人GestureListener的人来说可能很难理解,动不动就是几百行代码,也不方便我们浏览到自己想要的信息。我那时就在想:其实我就只是想简单的实现监听屏幕的滑动事件,哪用得着这么麻烦。

之后经过大量的查找,才发现实现这个功能的简单方法,通过继承GestureDetector的SimpleOnGestureListener这个类然后重写onFling方法在里面实现相应的逻辑就完成了这个功能,下面是代码:

public class MainActivity extends AppCompatActivity {

//定义滑动的最小距离

private static final int MIN_DISTANCE=100;

private GestureDetector gestureDetector;

private MyGestureDetector myGestureDetector;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//实例化MyGestureDetector

myGestureDetector=new MyGestureDetector();

//实例化GestureDetector并将MyGestureDetector实例传入

gestureDetector=new GestureDetector(this,myGestureDetector);

}

/**

* 重写onTouchEvent返回一个gestureDetector的屏幕触摸事件

*/

@Override

public boolean onTouchEvent(MotionEvent event) {

return gestureDetector.onTouchEvent(event);

}

/**

* 自定义MyGestureDetector类继承SimpleOnGestureListener

*/

class MyGestureDetector extends GestureDetector.SimpleOnGestureListener{

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

if(e1.getX()-e2.getX()>MIN_DISTANCE){

Toast.makeText(MainActivity.this,"左滑",Toast.LENGTH_SHORT).show();

}else if(e2.getX()-e1.getX()>MIN_DISTANCE){

Toast.makeText(MainActivity.this,"右滑",Toast.LENGTH_SHORT).show();

}else if(e1.getY()-e2.getY()>MIN_DISTANCE){

Toast.makeText(MainActivity.this,"上滑",Toast.LENGTH_SHORT).show();

}else if(e2.getY()-e1.getY()>MIN_DISTANCE){

Toast.makeText(MainActivity.this,"下滑",Toast.LENGTH_SHORT).show();

}

return true;

}

}

}

这个方法相比起实现GestureDetector.OnGestureListener要方便得多,GestureDetector.OnGestureListener必须要重写下面的所有方法:

按下(onDown):刚刚手指接触到触摸屏的那一刹那,就是触的那一下。

抛掷(onFling):手指在触摸屏上迅速移动,并松开的动作。

长按(onLongPress):手指按在持续一段时间,并且没有松开。

滚动(onScroll):手指在触摸屏上滑动。

按住(onShowPress):手指按在触摸屏上,它的时间范围在按下起效,在长按之前。

抬起(onSingleTapUp)手指离开触摸屏的那一刹那。

而GestureDetector.SimpleOnGestureListener只需要选择对我们需要重写的方法重写,显得更加的简单,想重写什么方法就重写什么方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值