您的位置:首页 > 移动开发 > Android开发

android: (手势识别)gestureDetector

2012-08-23 14:39 316 查看
package com.lay1;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;

public class LayoutDemo1Activity extends Activity implements GestureDetector.OnGestureListener {

GestureDetector detector;

/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//构造GestureDetector;Context context, OnGestureListener listener
detector = new GestureDetector(this, this);

detector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
//短快的点击算一次单击
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
System.out.println("onSingleTapConfirmed");
return false;
}
//双击时产生一次
@Override
public boolean onDoubleTap(MotionEvent e) {
System.out.println("onDoubleTap");
return false;
}
//双击时产生两次
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
System.out.println("onDoubleTapEvent");
return false;
}
});
}

@Override
public boolean onTouchEvent(MotionEvent event) {
return detector.onTouchEvent(event);
}
// 用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发
@Override
public boolean onDown(MotionEvent e) {
System.out.println("onDown");
return false;
}
// 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发
// 注意和onDown()的区别,强调的是没有松开或者拖动的状态
@Override
public void onShowPress(MotionEvent e) {

}
//用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发
@Override
public boolean onSingleTapUp(MotionEvent e) {
System.out.println("onSingleTapUp");
return false;
}
// 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
System.out.println("onScroll");
return false;
}
// 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发
@Override
public void onLongPress(MotionEvent e) {
System.out.println("onLongPress" + e.getEventTime());
}
//用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
System.out.println("onFling: " + (e1.getX() - e2.getX()) + " " + (e1.getY() - e2.getY()) + " " + velocityX + " " + velocityY);
System.out.println(e1.getY());
return false;
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: