Android监测手指上下左右滑动屏幕

在开发android程序时,有时会需要监测手指滑动屏幕,当手指朝上下左右不同方向滑动时做出不同的响应,那怎么去实现呢?

利用Android提供的手势监测器就可以很方便的实现,直接上代码(已测试通过)

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
public class CbMainActivity extends Activity implements  android.view.GestureDetector.OnGestureListener
{
     //定义手势检测器实例
     GestureDetector detector;
     
     @Override
     protected void onCreate(Bundle savedInstanceState)
     {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.cb_main);
         //创建手势检测器
         detector = new GestureDetector( this , this );
     }
 
     //将该activity上的触碰事件交给GestureDetector处理
     public boolean onTouchEvent(MotionEvent me){
         return detector.onTouchEvent(me);
     }
     
     @Override
     public boolean onDown(MotionEvent arg0) {
         return false ;
     }
 
     /**
      * 滑屏监测
      *
      */
     @Override
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
             float velocityY) {
         float minMove = 120 ;         //最小滑动距离
         float minVelocity = 0 ;      //最小滑动速度
         float beginX = e1.getX();    
         float endX = e2.getX();
         float beginY = e1.getY();    
         float endY = e2.getY();
         
         if (beginX-endX>minMove&&Math.abs(velocityX)>minVelocity){   //左滑
             Toast.makeText( this ,velocityX+ "左滑" ,Toast.LENGTH_SHORT).show();
         } else if (endX-beginX>minMove&&Math.abs(velocityX)>minVelocity){   //右滑
             Toast.makeText( this ,velocityX+ "右滑" ,Toast.LENGTH_SHORT).show();
         } else if (beginY-endY>minMove&&Math.abs(velocityY)>minVelocity){   //上滑
             Toast.makeText( this ,velocityX+ "上滑" ,Toast.LENGTH_SHORT).show();
         } else if (endY-beginY>minMove&&Math.abs(velocityY)>minVelocity){   //下滑
             Toast.makeText( this ,velocityX+ "下滑" ,Toast.LENGTH_SHORT).show();
         }
         
         return false ;
     }
 
     @Override
     public void onShowPress(MotionEvent arg0) {
         // TODO Auto-generated method stub
         
     }
 
     @Override
     public boolean onSingleTapUp(MotionEvent arg0) {
         // TODO Auto-generated method stub
         return false ;
     }
 
     @Override
     public void onLongPress(MotionEvent arg0) {
         // TODO Auto-generated method stub
         
     }
 
     @Override
     public boolean onScroll(MotionEvent e1, MotionEvent e2, float velocityX,
             float velocityY) {
     
         return false ;
     }
 
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值