在Android游戏开发中,我们可能经常要像PC操作一样在屏幕上双击。对于屏幕双击操作,Android 1.6版本以前并没有提供完善的手势识别类,Android 1.5的SDK中提供了android.view.GestureDetector.OnDoubleTapListener,但经测试无法正常工作,不知是何原因。最终我们的解决方案如下面的代码:
Java代码
    - public class TouchLayout extends RelativeLayout {   
-   
-     public Handler doubleTapHandler = null;   
-   
-     protected long lastDown = -1;   
-     public final static long DOUBLE_TIME = 500;   
-   
-     
-  public TouchLayout(Context context) {   
-        super(context);   
-          
-     }   
-   
-     public TouchLayout(Context context, AttributeSet attrs) {   
-        super(context, attrs);   
-          
-     }   
-   
-     public TouchLayout(Context context, AttributeSet attrs, int defStyle) {   
-        super(context, attrs, defStyle);   
-           
-     }   
-   
-        
-     public boolean onTouchEvent(MotionEvent event) {   
-          this.handleEvent(event);   
-   
-          if (event.getAction() == MotionEvent.ACTION_DOWN) {   
-             long nowDown = System.currentTimeMillis();   
-   
-             if (nowDown - lastDown < DOUBLE_TIME)   
-             {   
-                   if (doubleTapHandler != null)   
-                      doubleTapHandler.sendEmptyMessage(-1);   
-   
-             } else {   
-                lastDown = nowDown;   
-             }   
-   
-          }   
-   
-          return true;   
-   
-       }   
-        
-        
-     protected void handleEvent(MotionEvent event) {   
-   
-         switch (event.getAction()) {   
-         case MotionEvent.ACTION_DOWN:   
-            
-            break;   
-   
-         case MotionEvent.ACTION_UP:   
-              
-            break;   
-         }   
-   
-      }   
-   
-   
- }