class onDoubleClick implements View.OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
if(MotionEvent.ACTION_DOWN == event.getAction()){
count++;
if(count == 1){
firClick = System.currentTimeMillis();
} else if (count == 2){
secClick = System.currentTimeMillis();
if(secClick - firClick < 1000){
//雙擊事件
}
count = 0;
firClick = 0;
secClick = 0;
}
}
return true;
}
}
第二種方法
private OnGestureListener onGesture = new GestureDetector.OnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
Loger.d("onSingleTapUp");
return false;
}
@Override
public void onShowPress(MotionEvent e) {
Loger.d("onShowPress");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
Loger.d("onShowPress");
return false;
}
@Override
public void onLongPress(MotionEvent e) {
Loger.d("onLongPress");
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
Loger.d("onFling");
if (mListener == null)
return false;
float disX = (e1.getX() - e2.getX());
float disY = (e1.getY() - e2.getY());
if (Math.abs(disX) > Math.abs(disY)) {
if (e1.getX() > e2.getX()) {
mListener.onCamViewerFling(LEFT);
} else {
mListener.onCamViewerFling(RIGHT);
}
} else {
if (e1.getY() > e2.getY()) {
// mListener.onCamViewerFling(UP);
} else {
// mListener.onCamViewerFling(DOWN);
}
}
return false;
}
@Override
public boolean onDown(MotionEvent e) {
Loger.d("onDown");
return false;
}
};
mGestureDetector = new GestureDetector(onGesture);
mGestureDetector.setOnDoubleTapListener(onDoubleClick);