android 判断左右滑动,上下滑动的GestureDetector简单手势检测

直接加入监听GestureDetector放在需要判断滑动手势的地方:

 1 import android.app.Activity;
 2 import android.os.Bundle;
 3 import android.util.Log;
 4 import android.view.GestureDetector;
 5 import android.view.GestureDetector.OnGestureListener;
 6 import android.view.MotionEvent;
 7
 8 public class MainActivity extends Activity {
 9     protected static final float FLIP_DISTANCE = 50;
10     GestureDetector mDetector;
11
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16
17         mDetector = new GestureDetector(this, new OnGestureListener() {
18
19             @Override
20             public boolean onSingleTapUp(MotionEvent e) {
21                 // TODO Auto-generated method stub
22                 return false;
23             }
24
25             @Override
26             public void onShowPress(MotionEvent e) {
27                 // TODO Auto-generated method stub
28
29             }
30
31             @Override
32             public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
33                 // TODO Auto-generated method stub
34                 return false;
35             }
36
37             @Override
38             public void onLongPress(MotionEvent e) {
39                 // TODO Auto-generated method stub
40
41             }
42
43             /**
44              *
45              * e1 The first down motion event that started the fling. e2 The
46              * move motion event that triggered the current onFling.
47              */
48             @Override
49             public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
50                 if (e1.getX() - e2.getX() > FLIP_DISTANCE) {
51                     Log.i("TAG", "<--- left, left, go go go");
52                     return true;
53                 }
54                 if (e2.getX() - e1.getX() > FLIP_DISTANCE) {
55                     Log.i("TAG", "right, right, go go go --->");  //忽然觉得这个log好智障...
56                     return true;
57                 }
58                 if (e1.getY() - e2.getY() > FLIP_DISTANCE) {
59                     Log.i("TAG", "向上滑...");
60                     return true;
61                 }
62                 if (e2.getY() - e1.getY() > FLIP_DISTANCE) {
63                     Log.i("TAG", "向下滑...");
64                     return true;
65                 }
66
67                 Log.d("TAG", e2.getX() + " " + e2.getY());
68
69                 return false;
70             }
71
72             @Override
73             public boolean onDown(MotionEvent e) {
74                 // TODO Auto-generated method stub
75                 return false;
76             }
77         });
78     }
79
80     @Override
81     public boolean onTouchEvent(MotionEvent event) {
82         return mDetector.onTouchEvent(event);
83     }
84 }  
时间: 2024-11-05 20:23:42

android 判断左右滑动,上下滑动的GestureDetector简单手势检测的相关文章

GestureDetector封装手势检测上下滑动

项目中需要检测ListView的上滑下滑隐藏顶部View控件,之前在网上也有很多实现案例.在git上发现个封装很不错的例子,记录下来. GestureDetector是一个手势检测类,内部有个SimpleOnGestureListener手势监听类. 定义一个抽象类SimpleDetector,继承GestureDetector.SimpleOnGestureListener抽象类,实现View.OnTouchListener接口.这样做有什么好处呢?首先ListView只要setOnTouch

android 使用viewflipper实现左右滑动的效果

public class MainActivity extends Activity implements OnGestureListener { private static final String TAG = "MainActivity"; private ViewFlipper viewFlipper; private GestureDetector detector; //手势检测 Animation leftInAnimation; Animation leftOutAni

Android开发之手势滑动(滑动手势监听)

在Android应用中,经常需要手势滑动操作,比如上下滑动,或左右方向滑动,处理手势滑动通常有两种方法:一种是单独实现setOnTouchListener监听器来,另一种是构建手势探测器 第一种方法,就是在要实现滑动的View中,实现OnTouchListener监听事件,然后判断KeyDonw和KeyUp 直接的位置距离来判断滑动方向,核心实现代码如下: /** * 设置上下滑动作监听器 * @author caizhiming */ private void setGestureListen

Android中监听ListView滑动到底部

Android中的应用就是ListView中向下滑动加载更多的功能,不要再onScroll方法中进行判断,那样当滑动到底部的时候,可能我们需要触发点什么事件,比如加载更多.隐藏某个控件等等. 第一种方法是直接滑动到底部就触发 listview.setOnScrollListener(new OnScrollListener(){       @Override       public void onScrollStateChanged(AbsListView view, int scrollS

android 横向list特效——规格滑动

首先,这个是在github开源项目HorizontalListView上作得修改,这个开源项目的下载地址我忘记了,贴一个引用网址:http://code.eoe.cn/233. 首先来说一下什么叫规格滑动: 上图就是规格滑动的合法状态:恰好显示一定数量的item,并且没有item处于一半显示一半在屏幕外的状态.这样说还不是很清楚,那么再贴一张非法状态: 所谓规格滑动,就是每次滑动结束之后必然停留在合法状态,如果是非法状态,则会自动滑动到最近的合法状态位置上.一次滚动之后ListView要么没有位

Android 解决ScrollView与父视图滑动冲突问题

最近在解决一个比较棘手的问题,就是ScrollView与父视图之间滑动冲突的问题. 这里所说的滑动冲突,是指包裹ScrollView的父视图本身就是一个可以滑动的组件,比如说ScrollView嵌套ScrollView的情况(当然,这在实际应用中是没有意义的,因为ScrollView只能包含一个子组件,这里只是举一个栗子). 问题定义 说要解决这样一个问题,肯定会有点摸不到头脑,但我们可以用分解法,来"大事化小". 遇到这种滑动事件冲突的嵌套首先要明白一个孰先孰后的问题,就是先让父组件

Android 自定义view实现上下滑动,大众点评,美团地图导航界面。

主函数: package com.example.slideview; import com.example.fdadsf.R; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.app.Activity; /** * 滑动菜单Demo主Activity *

Android实现浮层的上下滑动(支持内部添加View)

前言 我K,今天居然是情人节,对于资深的单身狗来说,简直是个噩耗,今天注定是各种秀恩爱,心塞中.... 话题到此结束,管他什么情人节,今天给大家带来的是一个浮层的上下滑动,浮层滑动时分三种状态:全部显示.显 示一半.隐藏.可在浮层中添加ListView,GirdView,ImageView等等View. 具体的效果看下面的GIF图: 效果讲解 1.在上面的浮层中我们可以看到存放着一个ListView,并能进行上下滚动,也就是说浮层的Touch事件需要在适 当的时候进行拦截,不传递给子View.这

Android 实现用户列表信息滑动删除功能和选择删除功能

在项目开发过程中,常常需要对用户列表的信息进行删除的操作.Android中常用的删除操作方式有两种 ,一种就是类似微信的滑动出现删除按钮方式,还有一种是通过CheckBox进行选择,然后通过按钮进行删除的方式.本来的实例集成上述的两种操作方式来实现用户列表删除的效果. 设计思路:在适配器类MyAdapter一个滑动删除按钮显示或隐藏的Map,一个用于CheckBox是否选中的Map和一个与MainAcitivyt进行数据交互的接口ContentsDeleteListener,同时该接口包含两个方