http://blog.csdn.net/iamfafa/article/details/6316062

Android里有两个类

  android.view.GestureDetector

  android.view.GestureDetector.SimpleOnGestureListener

  (另外android.widget.Gallery好像是更牛x的OnGestureListener )

  1)新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener

  可以实现以下event事件。

  boolean onDoubleTap(MotionEvent e)

  解释:双击的第二下Touch down时触发

  boolean onDoubleTapEvent(MotionEvent e)

  解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。

  boolean onDown(MotionEvent e)

  解释:Touch down时触发

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

  解释:Touch了滑动一点距离后,up时触发。

  void onLongPress(MotionEvent e)

  解释:Touch了不移动一直Touch down时触发

  boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)

  解释:Touch了滑动时触发。

  void onShowPress(MotionEvent e)

  解释:Touch了还没有滑动时触发

  (与onDown,onLongPress比较

  onDown只要Touch down一定立刻触发。

  而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。

  所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。

  )

  boolean onSingleTapConfirmed(MotionEvent e)

  boolean onSingleTapUp(MotionEvent e)

  解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。

  点击一下非常快的(不滑动)Touchup:

  onDown->onSingleTapUp->onSingleTapConfirmed

  点击一下稍微慢点的(不滑动)Touchup:

  onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed

  2)在view的新建一个GestureDetector的对象。

  构造函数里 gestureDetector = new GestureDetector(new HahaGestureDetectorListener());

  然后在View的onTouchEvent里以下这样用,就可以在刚才1)弄的事件里写自己的代码了。

  @Override

  public boolean onTouchEvent(MotionEvent event) {

  gestureDetector.onTouchEvent(event);

  }

  但是,郁闷的是SimpleOnGestureListener没有提供onUp(), 还得在View的

  onTouchEvent的

  case MotionEvent.ACTION_UP:

  里来写对应的代码。

Android 屏幕滑动事件的更多相关文章

  1. android ViewPager滑动事件讲解

    首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChan ...

  2. Appium Android 屏幕滑动

  3. android开发学习之ViewPager滑动事件讲解

    android ViewPager滑动事件讲解 今天在做项目的时候,由于要处理viewPager页面滑动的事件,所以对其进行了一个小小的研究: 首先ViewPager在处理滑动事件的时候要用到OnPa ...

  4. Android 解决Gallery下ScrollView滑动事件冲突

    在Gallery下,里面内容过长超出屏幕,这时我们可以用ScrollView来滚动,但是这样做了以后,会发现一个问题,Gallery的滑动事件和ScrollView的滑动事件起冲突,这时我们可以自定义 ...

  5. Android——滑动事件冲突解决

    android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件. android系统中的每个View的子类都具有下面三个与TouchEvent处理密切相关的方法: (1) ...

  6. Android判断Touch为滑动事件还是操作控件

    Android判断Touch为滑动事件还是操作控件 因为在项目中要判断WebView是否处于滚动状态,但它不像ListView有onScrollStateChanged方法来监听,要实现就得手动监听它 ...

  7. Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题

    之前写过关于HorizontalScrollView滑动和按钮事件触发问题,但是不能所有的情况,最近几天一直在想这个问题,今天有一个比较好的解决思路,最终应用在项目里面效果也很好,首先说明一下功能: ...

  8. Android onTouch、OnLongClick、onClick和ScrollView滑动事件冲突

    为了实现近期录制的长按,松开手指,结束录制功能.在项目,难道你去走一走会头晕,书写demo为了下一个梳理. 顺便研究android事件调用机制. 先上效果界面: 布局: <RelativeLay ...

  9. Android 屏幕实现水龙头事件

    在android下,事件的发生是在监听器下进行,android系统能够响应按键事件和触摸屏事件.事件说明例如以下: onClick(View v)一个普通的点击button事件 boolean onK ...

随机推荐

  1. 网页上的表格数据table

    格式: <table> <tr> <th> </th> </tr> <tr> <td> </td> &l ...

  2. [LeetCode] Combination Sum (bfs)

    Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher ...

  3. [LeetCode]题解(python):040-Combination Sum II

    题目来源 https://leetcode.com/problems/combination-sum-ii/ Given a collection of candidate numbers (C) a ...

  4. JS之tagNaem和nodeName

    nodeName是节点的属性,tagName是元素的属性.元素是节点的子集.不是任何节点都有tagName的,比如文本节点,仅有nodeName属性. 这个和css中的倾斜和斜体的关系是一样的.不是所 ...

  5. asp.net中控件的Attributes用法

    在点击保存时通常会验证输入框是否为空,一般我们会在按钮控件中添加OnClientClick=“return Check();”事件,并通过javascript来处理. 下面是另一种方法,在后台.cs代 ...

  6. php empty isset is_null

    总是忘记这些变量的区别,参考下http://www.jb51.net/article/38020.htm,记录下 设置几个变量 <?php $a; $b = false; $c = ''; $d ...

  7. SQL语句里怎么获得当前年份(MySQL数据库)

    使用函数Year及CurDate的组合: Year(CurDate()) select date_format(min(date),'%Y-%m-%d') as mindate, date_forma ...

  8. 终于有人把P2P、P2C、O2O、B2C、B2B、C2C 的区别讲透了

    http://news.mbalib.com/story/88506 P2P.P2C .O2O .B2C.B2B. C2C,每天看着这些常见又陌生的名词,如果有人跟你说让你解释它的含义,金融的小伙伴们 ...

  9. jquery的hover mouseover mouseout mouseenter mouseleave的区别

    jquery的hover mouseover mouseout mouseenter mouseleave的区别 1.mouseover mouseout mouseover - 鼠标指针经过任何子元 ...

  10. Proxy settings in TortoiseSVN and command line svn client

    The server file is created when you install TortoiseSVN, Eclipse or command-line Subversion. Use the ...