Activity实现上下左右滑动监听onTouchEvent()方法

用Activity的onTouchEvent方法实现监听手指上下左右滑动

Activity实现上下左右滑动监听onTouchEvent()方法_第1张图片

应用了Activity的ontouchEvent方法监听手指点击事件,手指滑动的时候会先按下,滑倒另一个地方再抬起,我们就可以根据按下的坐标和抬起的坐标算出用户是往哪一个方向滑动了。

  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.MotionEvent;  
  4. import android.widget.Toast;  
  5.   
  6. public class MainActivity extends Activity {  
  7.     //手指按下的点为(x1, y1)手指离开屏幕的点为(x2, y2)  
  8.     float x1 = 0;  
  9.     float x2 = 0;  
  10.     float y1 = 0;  
  11.     float y2 = 0;  
  12.       
  13.     @Override  
  14.     protected void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.activity_main);  
  17.     }  
  18.       
  19.     @Override  
  20.     public boolean onTouchEvent(MotionEvent event) {  
  21.         //继承了Activity的onTouchEvent方法,直接监听点击事件  
  22.         if(event.getAction() == MotionEvent.ACTION_DOWN) {  
  23.             //当手指按下的时候  
  24.             x1 = event.getX();  
  25.             y1 = event.getY();  
  26.         }  
  27.         if(event.getAction() == MotionEvent.ACTION_UP) {  
  28.             //当手指离开的时候  
  29.             x2 = event.getX();  
  30.             y2 = event.getY();  
  31.             if(y1 - y2 > 50) {  
  32.                 Toast.makeText(MainActivity.this"向上滑", Toast.LENGTH_SHORT).show();  
  33.             } else if(y2 - y1 > 50) {  
  34.                 Toast.makeText(MainActivity.this"向下滑", Toast.LENGTH_SHORT).show();  
  35.             } else if(x1 - x2 > 50) {  
  36.                 Toast.makeText(MainActivity.this"向左滑", Toast.LENGTH_SHORT).show();  
  37.             } else if(x2 - x1 > 50) {  
  38.                 Toast.makeText(MainActivity.this"向右滑", Toast.LENGTH_SHORT).show();  
  39.             }  
  40.         }  
  41.         return super.onTouchEvent(event);  
  42.     }  
  43.       
  44.       
  45. }  

你可能感兴趣的:(android)