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

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

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

public class MainActivity extends AppCompatActivity {//定义滑动的最小距离private static final int MIN_DISTANCE=100;private GestureDetector gestureDetector;private MyGestureDetector myGestureDetector;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//实例化MyGestureDetectormyGestureDetector=new MyGestureDetector();//实例化GestureDetector并将MyGestureDetector实例传入gestureDetector=new GestureDetector(this,myGestureDetector);}/*** 重写onTouchEvent返回一个gestureDetector的屏幕触摸事件*/@Overridepublic boolean onTouchEvent(MotionEvent event) {return gestureDetector.onTouchEvent(event);}/*** 自定义MyGestureDetector类继承SimpleOnGestureListener*/class MyGestureDetector extends GestureDetector.SimpleOnGestureListener{@Overridepublic 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只需要选择对我们需要重写的方法重写,显得更加的简单,想重写什么方法就重写什么方法。

Android监听屏幕的滑动事件相关推荐

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

    实现监听屏幕上下左右滑动事件 前段时间为了实现这个功能在网上找了很多教程,发现很多教程都是很大的篇幅,对于像我这种一点都不了解的人GestureListener的人来说可能很难理解,动不动就是几百行代 ...

  2. Android锁屏界面监听按键,Android 监听锁屏/开屏事件

    1. 两种方案 (1) 监听BroadcastReceiver (2)获取PowerManager事件 2.  BroadcastReceiver 2.1. 事件 总共有3个事件: Intent.AC ...

  3. android 监听屏幕是否锁屏

    今天,简单讲讲如何监听手机屏幕是否锁屏. 实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可 ...

  4. 蓝牙耳机按键事件linux,【记录】Android监听蓝牙耳机的按键事件

    Android监听蓝牙耳机的按键事件 一.本文测试环境: 1.使用Dacom M10蓝牙耳机 2.成功监测到"电话键"(音量键没有监测到) 3.参考资料 4.参考源码 二.一些说明 ...

  5. Android 监听Home键按键事件

    Android 监听Home键按键事件 标签(空格分隔):Android Home键 在Android开发中有很多按键事件需要在App中捕获从而做出一些针对性的操作,例如返回键,音量键等都可以直接在d ...

  6. Android 监听屏幕解锁事件

    在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action.奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使 ...

  7. touch事件总结,监听屏幕点击事件

    Touch对象--MDN TouchEvent--MDN 一.问题背景 click事件在移动端的300毫秒延迟问题 当需要监听诸如左滑.右滑之类的事件 二.知识点概括 1. 事件类型 touchsta ...

  8. Android监听屏幕解锁和判断屏幕状态

     开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在配置里面注册action为 android.intent.action.USER_PRESENT的广播,则可以监听 ...

  9. Android 监听ScrollView的滑动

    有时候我们需要监听ScroView的滑动情况,比如滑动了多少距离,是否滑到布局的顶部或者底部.可惜的是SDK并没有相应的方法,不过倒是提供了一个 protected void onScrollChan ...

最新文章

  1. 余承东没有吹牛:华为首次超越三星,成为全球最大手机供应商
  2. 送书!送书!送书!阿广包邮送15本技术书籍!
  3. PS2019历史记录画笔工具、历史记录艺术画笔工具
  4. 逆转衰老!“70岁”小鼠经过数月治疗,肾脏皮肤血液细胞重返“年轻态”
  5. Java数据结构和算法(十)——二叉树
  6. BOOL 值在 debug 和 release 模式下初始化不一样!!!
  7. python正则表达匹配汉字
  8. 微型计算机开机密码丢失,校诡实录微机教室攻略 电脑密码是多少[多图]
  9. Python3 爬虫学习笔记 C09【数据储存系列 — 文件储存】
  10. OpenCASCADE 麻花钻头造型实例分析
  11. MFC开发IM-第十三篇、MFC改变字体重影的问题
  12. 象棋名手手机版2019最新版_天天象棋2019版下载
  13. mysql enclosed by_MySQL导入格式化数据
  14. 「兼容M1」iZotope RX 9 Advanced for Mac - 音频修复工具
  15. 基于单片机程控滤波放大器增益设计-protues仿真
  16. dom影像图形成数字地形图_航测相关知识点——鲲鹏智汇承接航测相关任务
  17. 演绎与归纳,双管齐下
  18. 2021年全球专业油田化学品收入大约34600百万美元,预计2028年达到41640百万美元
  19. matlab convexhull,使用convex_hull计算体积为0
  20. 6款程序员必备的免费在线画图工具,贼好用!

热门文章

  1. 【CISSP备考笔记】第6章:安全评估与测试
  2. unicloud开发微商管理小程序-商品私域推广
  3. 高斯课堂 计算机网络(下)
  4. 如何找回word文档的打开密码
  5. 基于ssm物业报修管理系统毕业设计源码111024
  6. 使用putty在从linux拷贝文件
  7. js+php做省份城市选择,三级联动,前后端简单交互,最详细
  8. 2020职高计算机录取分数线,四川邮电职校2020单招录取分数线
  9. 特斯拉股价周一大涨20% 总市值超1400亿美元
  10. 07年时写给刚入职的同事的一封信