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

Android游戏开发教程之十九:屏幕双击事件的捕获

2012-08-05 22:24 531 查看
在Android游戏开发中,我们可能经常要像PC操作一样在屏幕上双击。对于屏幕双击操作,Android 1.6版本以前并没有提供完善的手势识别类,Android 1.5的SDK中提供了android.view.GestureDetector.OnDoubleTapListener,但经测试无法正常工作,不知是何原因。最终我们的解决方案如下面的代码:

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:   
             //Do sth 这里处理即可   
               break;   
      
            case MotionEvent.ACTION_UP:   
               //Do sth   
               break;   
            }   
      
         }   
      
      
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐