按住屏幕不动,触发的事件顺序为:onDown->onShowPress->onLongPress
快速点一下屏幕,触发的事件顺序为:onDown->onSingleTapUp
在屏幕上滑动一下,触发的事件顺序为:onDown->onScroll(多次调用)->onFling
package prictise.lxm.prictise;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.Toast;
/**
* 实现手势检测
* 继承了手势检测监听接口
*/
public class MainActivity extends Activity
implements GestureDetector.OnGestureListener{
GestureDetector gestureDetector; //手势检测对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gestureDetector = new GestureDetector(this, this);
}
/**
* 对Activity的手势进行检测
* @param event
* @return
*/
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
Toast.makeText(this,"onDown",Toast.LENGTH_SHORT).show();
return true;
}
@Override
public void onShowPress(MotionEvent e) {
Toast.makeText(this,"onShowPress",Toast.LENGTH_SHORT).show();
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Toast.makeText(this,"onSingleTapUp",Toast.LENGTH_SHORT).show();
return true;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
Toast.makeText(this,"onScroll",Toast.LENGTH_SHORT).show();
return true;
}
@Override
public void onLongPress(MotionEvent e) {
Toast.makeText(this,"onLongPress",Toast.LENGTH_SHORT).show();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Toast.makeText(this,"onFling",Toast.LENGTH_SHORT).show();
return true;
}
}