
正文
android 判断左右滑动,上下滑动的GestureDetector简单手势检测
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
直接加入监听GestureDetector放在需要判断滑动手势的地方:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent; public class MainActivity extends Activity {
protected static final float FLIP_DISTANCE = ;
GestureDetector mDetector; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mDetector = new GestureDetector(this, new OnGestureListener() { @Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
} @Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub } @Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
// TODO Auto-generated method stub
return false;
} @Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub } /**
*
* e1 The first down motion event that started the fling. e2 The
* move motion event that triggered the current onFling.
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX() - e2.getX() > FLIP_DISTANCE) {
Log.i("TAG", "<--- left, left, go go go");
return true;
}
if (e2.getX() - e1.getX() > FLIP_DISTANCE) {
Log.i("TAG", "right, right, go go go --->"); //忽然觉得这个log好智障...
return true;
}
if (e1.getY() - e2.getY() > FLIP_DISTANCE) {
Log.i("TAG", "向上滑...");
return true;
}
if (e2.getY() - e1.getY() > FLIP_DISTANCE) {
Log.i("TAG", "向下滑...");
return true;
} Log.d("TAG", e2.getX() + " " + e2.getY()); return false;
} @Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
});
} @Override
public boolean onTouchEvent(MotionEvent event) {
return mDetector.onTouchEvent(event);
}
}






