Android OnGestureListener用法 识别用户手势 上下左右滑动

转载地址:点击打开链接

android可以识别用户的手势(即用户用手指滑动的方向),通过用户不同的手势,从而做出不同的处理

 

 

需要使用OnGestureListener

 

比如说看电子书的时候翻页,或者要滑动一些其他内容

 

 

直接上代码

 

界面文件

main.xml

[c-sharp]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:id="@+id/ll"  
  7.     >  
  8. <TextView    
  9.       
  10.     android:layout_width="fill_parent"   
  11.     android:layout_height="wrap_content"   
  12.     android:text="@string/hello"  
  13.     />  
  14. </LinearLayout>  
 

 

主Activity

[c-sharp]  view plain copy
  1. package zy.lucifer.testGesture;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.util.Log;  
  5. import android.view.GestureDetector;  
  6. import android.view.MotionEvent;  
  7. import android.view.View;  
  8. import android.view.GestureDetector.OnGestureListener;  
  9. import android.view.View.OnTouchListener;  
  10. import android.widget.LinearLayout;  
  11. import android.widget.TextView;  
  12. import android.widget.Toast;  
  13. public class testGesture extends Activity implements OnTouchListener,  
  14.         OnGestureListener {  
  15.     GestureDetector mGestureDetector;  
  16.     private static final int FLING_MIN_DISTANCE = 50;  
  17.     private static final int FLING_MIN_VELOCITY = 0;  
  18.     /** Called when the activity is first created. */  
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.main);  
  23.         mGestureDetector = new GestureDetector(this);  
  24.         LinearLayout ll=(LinearLayout)findViewById(R.id.ll);  
  25.         ll.setOnTouchListener(this);  
  26.         ll.setLongClickable(true);  
  27.     }  
  28.     @Override  
  29.     public boolean onTouch(View v, MotionEvent event) {  
  30.         // TODO Auto-generated method stub  
  31.         Log.i("touch","touch");  
  32.          return mGestureDetector.onTouchEvent(event);   
  33.     }  
  34.     @Override  
  35.     public boolean onDown(MotionEvent e) {  
  36.         // TODO Auto-generated method stub  
  37.         return false;  
  38.     }  
  39.     @Override  
  40.     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
  41.             float velocityY) {  
  42.         // TODO Auto-generated method stub  
  43.          if (e1.getX()-e2.getX() > FLING_MIN_DISTANCE   
  44.                     && Math.abs(velocityX) > FLING_MIN_VELOCITY) {   
  45.                 // Fling left   
  46.                 Toast.makeText(this"向左手势", Toast.LENGTH_SHORT).show();   
  47.             } else if (e2.getX()-e1.getX() > FLING_MIN_DISTANCE   
  48.                     && Math.abs(velocityX) > FLING_MIN_VELOCITY) {   
  49.                 // Fling right   
  50.                 Toast.makeText(this"向右手势", Toast.LENGTH_SHORT).show();   
  51.             } else if(e1.getY()-e2.getY() > FLING_MIN_DISTANCE
  52.                     && Math.abs(velocityY) > FLING_MIN_VELOCITY){
  53.                 // Fling up
  54.                 Toast.makeText(this"向上手势", Toast.LENGTH_SHORT).show();  
  55.             }else if(e1.getY()-e2.getY() > FLING_MIN_DISTANCE  
  56.                    && Math.abs(velocityY) > FLING_MIN_VELOCITY){
  57.                 // Fling down
  58. Toast.makeText(this"向下手势", Toast.LENGTH_SHORT).show();
  59. }
  60.             return false;   
  61.     }  
  62.     @Override  
  63.     public void onLongPress(MotionEvent e) {  
  64.         // TODO Auto-generated method stub  
  65.     }  
  66.     @Override  
  67.     public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,  
  68.             float distanceY) {  
  69.         // TODO Auto-generated method stub  
  70.         return false;  
  71.     }  
  72.     @Override  
  73.     public void onShowPress(MotionEvent e) {  
  74.         // TODO Auto-generated method stub  
  75.     }  
  76.     @Override  
  77.     public boolean onSingleTapUp(MotionEvent e) {  
  78.         // TODO Auto-generated method stub  
  79.         return false;  
  80.     }  
  81. }  
 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值