最近在写一个图片浏览安卓应用,想要弄成全屏显示,只在单击时显示工具栏和状态栏,在触摸滑动时翻页。经过几个小时在互联网上的搜索也没找到合适的例子

知道Android Studio的模板里有一个全屏的模板,于是使用Android studio中的全屏模板新建了一个工程,启动测试了一下。应用启动时就自动隐藏了工具栏和状态栏,点击屏幕后会重新显示出来,正是我所需要的。哇,真不错

但也有问题,触摸滑动和点击居然不分家,最终都会触发点击事件。这该怎么办呢?研究了一下setOnTouchListener事件,发现该事件最后的返回值可以影响是否还会执行后面的点击事件。也就是返回true不执行后面的事件,返回false则继续执行后面的事件。

于是写了下面的代码,来区分用户的操作意图,从页触发不同的事件。

        mContentView.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:DownX = event.getX();//float DownXDownY = event.getY();//float DownYmoveX = 0;moveY = 0;currentMS = System.currentTimeMillis();//long currentMS     获取系统时间break;case MotionEvent.ACTION_MOVE:moveX += Math.abs(event.getX() - DownX);//X轴距离moveY += Math.abs(event.getY() - DownY);//y轴距离DownX = event.getX();DownY = event.getY();break;case MotionEvent.ACTION_UP:long moveTime = System.currentTimeMillis() - currentMS;//移动时间//判断是否继续传递信号if(moveTime>200&&(moveX>20||moveY>20)){return true; //不再执行后面的事件,在这句前可写要执行的触摸相关代码。点击事件是发生在触摸弹起后}break;}return false;//继续执行后面的代码}});

上面的代码通过计算触摸时间和触摸期间移动的距离来判断用户的操作意图。当触摸时间较长,并且移动了一定距离后,我们就断定发生了触摸滑动操作,并返回true,下再引发后面的事件;否则继续触发后面的点击事件。

我建了一个GIT仓库,存放我尝试过的例子,完整 代码都放在那里。

https://code.csdn.net/do168/androidtestcenter

欢迎下载

在Android中区分点击和滑动操作相关推荐

  1. Android中区分滑动和点击操作

    问题:在Android应用中,如何区分用户的操作是点击操作还是滑动操作. 答: 当用户对应用内一个View控件操作时,我们在程序中对View进行绑定Touch事件的监听(android.view.Vi ...

  2. Android中RecyclerView点击item展开列表详细内容(超简单实现)

    请注明出处: http://blog.csdn.net/qq_23179075/article/details/79230457 Android中RecyclerView点击item展开列表详细内容( ...

  3. android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)

    这里总结下android中关于手机屏幕的相关操作: 1.获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同才去不同的布局或显示不同的素材) <uses-sdk and ...

  4. 详解图像形态学中的击中击不中变换操作(HMT),并提醒大家OpenCV4中的击中击不中变换操作是有问题的

    大家看这篇博文前可以先看一看下面这篇博文,下面这篇博文是这篇博文的基础: 详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐 ...

  5. android模拟点击滑动,模拟Android的view点击和滑动监听

    一,简单形式的 /*模拟Android中的view 点击和滑动监听 * */ public class View { private OnClickListener onClickListener; ...

  6. 处理Android中的点击冲突

    我目前遇到的点击冲突发生的情况有三种: 1.ViewGroup中Item点击事件和子控件的冲突: 2.onTouch与onClick之间的冲突: 3.滑动与点击事件冲突. 下面开始分享解决办法: 情况 ...

  7. Android中Button点击事件

    在Android中的Button控件上,有三种鼠标点击事件,分别是鼠标点击事件,长按事件,触摸事件 接下来,看一下是如何进行的 方法一: 在layout中创建一个xml文件,使用什么布局方式,你都可以 ...

  8. Android中模拟点击软件的实现原理探究

    简介 按键触摸类模拟点击软件最早开始于PC时代,指的是可以通过设置.脚本控制等方式去实现模拟点击,解放双手,达到自动化操作的目的.在Android中,模拟点击对应的就是触发屏幕点击事件,多用于游戏中完 ...

  9. android 增加触摸范围,android seekBar 增加点击和滑动范围

    seekBar的的范围有限,有时候设计师要求高度为4dp,此时范围太小,很难滑动成功.因此,我们需要在不改变 UI 的前提下,增加点击和滑动范围. 直接上代码: public class MainAc ...

最新文章

  1. 大肆行贿!微软前员工爆料,在中东、非洲每年花2亿美元回扣送礼
  2. 直播报名 | 基金业数字化运营指标体系建设
  3. decltype 和 auto
  4. php小程序群发通知,小程序实现群发功能代码的实现
  5. 实例解析linux内核I2C体系结构(2)
  6. php 逻辑与运算符使用说明
  7. 对于over-posting的防御
  8. 如何面试前端工程师?
  9. 管理感悟:你是产品的第一个用户
  10. 光纤传感技术:基于Matlab的OFDR系统数值仿真
  11. 组播负载分担、静态组播路由和MBGP技术原理
  12. mysql root不能登录密码怎么办_mysql 忘记root密码,重置密码,及重置密码后权限问题不能登录的解决方案...
  13. 简单代码变出超个性化的QQ昵称
  14. HMI-47-【多媒体】Title界面实现 2
  15. 写给新入职的毕业生们(一)
  16. 疫情下绩效管理和奖金激励怎么做
  17. Python之三元运算、集合、函数
  18. 史上最全最精美的ppt模板,这里有2000多套ppt,涵盖了各行各业的ppt类型,不管是在校用还是工作用,这里面都有!
  19. 为什么Proxy一定要配合Reflect使用?
  20. Android的媒体播放器——简易视频播放器(详解)

热门文章

  1. php的pdo模块已经开启,PHPEMS的pdo模块加载问题
  2. PU learning算法简介
  3. spring之注解(二)Autowired
  4. GitHub使用流程
  5. 双节 7 天,石头去哪里了?|请查收云南旅游攻略
  6. 视频会议行业获得新生机
  7. java 加背景颜色_Java 给Word文档添加背景颜色
  8. datetimepicker控件怎么改变hover颜色_Qt编写自定义控件9-导航按钮控件
  9. 众盟科技2020智能化白皮书:穿越新商业周期,读懂商业智能化的真义
  10. python爬虫赚钱的经历-个人利用Python爬虫技术怎么挣钱-10万被动收入