80,352
社区成员
发帖
与我相关
我的任务
分享
/**
*
*/
package com.stee.android;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
/**
* @author Administrator
*
*/
public class SwipeDemo extends Activity implements View.OnTouchListener{
GestureDetector gestureDetector;
MyGestureDetectorListener lsnr;
Context ctx;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View v = findViewById(android.R.id.content);
ctx = this.getApplicationContext();
lsnr = new MyGestureDetectorListener();
v.setOnTouchListener(this);
gestureDetector = new GestureDetector(ctx, lsnr) {
@Override
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
}
};
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return gestureDetector.onTouchEvent(event);
}
private class MyGestureDetectorListener extends SimpleOnGestureListener {
@Override
public boolean onDown (MotionEvent e){
Log.i("", "ondown");
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(ctx, "swipe left", Toast.LENGTH_SHORT).show();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(ctx, "swipe right", Toast.LENGTH_SHORT).show();
}
return true;
}
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
}
}