android中有一个手势识别类:GestureDetector,其通过通过android.view.GestureDetector.OnGestureListener来触发事件。
package com.xcz1899.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnTouchListener{
GestureDetector mGesture;
TextView mTVTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTVTest = (TextView) findViewById(R.id.tv_test);
mTVTest.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
mGesture =new GestureDetector(this, new OnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
Toast.makeText(getApplicationContext(), "onDown", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public void onShowPress(MotionEvent e) {
Toast.makeText(getApplicationContext(), "onShowPress", Toast.LENGTH_SHORT).show();
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Toast.makeText(getApplicationContext(), "onSingleTapUp", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Toast.makeText(getApplicationContext(), "onScroll", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public void onLongPress(MotionEvent e) {
Toast.makeText(getApplicationContext(), "onLongPress", Toast.LENGTH_SHORT).show();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
Toast.makeText(getApplicationContext(), "onFling", Toast.LENGTH_SHORT).show();
return false;
}
});
return mGesture.onTouchEvent(event);
}
}