界面类:
public class MainActivity extends Activity {
private GestureDetector myGD;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
myGD = new GestureDetector(this,new WbGestureListener());
LinearLayout ll=(LinearLayout)findViewById(R.id.ll);
ll.setOnTouchListener(this);
ll.setLongClickable(true);
}
private class WBTouhListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
return myGD.onTouchEvent(event);
}
}
}
public class WbGestureListener implements OnGestureListener{
private static final int SWIPE_HORIZONTAL_MIN_DISTANCE = 120; //横向最小滑动距离
private static final int SWIPE_VERTICAL_MIN_DISTANCE = 120; //纵向最小滑动距离
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {
float Y_distance = Math.abs(e1.getY() - e2.getY());
if(Y_distance < SWIPE_VERTICAL_MIN_DISTANCE){
if ((e1.getX() - e2.getX() > SWIPE_HORIZONTAL_MIN_DISTANCE)
&& (Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY)) {
...(要执行的动作)
} else if ((e2.getX() - e1.getX() > SWIPE_HORIZONTAL_MIN_DISTANCE)
&& (Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY)) {
...(要执行的动作)
}
}
return false;
}
@Override
public void onLongPress(MotionEvent arg0) {
}
@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
return false;
}
@Override
public boolean onSingleTapUp(MotionEvent arg0) {
return false;
}
@Override
public void onShowPress(MotionEvent e) { }
}