`
JasonShieh
  • 浏览: 522616 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA自定义双击间隔时间

阅读更多
  @Override  
  public boolean onSingleTapUp(MotionEvent e) {   
    //viewA.setText("-" + "SINGLE TAP UP" + "-"+ i++);   
    Log.v("test", "onSingleTapUp "+e.getX()+" "+e.getY());
    if(!waitDoubleClick){
      waitDoubleClick = true;
      Log.v("test", "waitDoubleClick");
      //等待下次点击
      Thread checkUpdate = new Thread() {     
        public void run() {
          //固定时间后如果还没有改变状态,说明是单击,取消等待状态
          try {
            sleep( DOUBLE_CLICK_TIME );
            if(waitDoubleClick){
              waitDoubleClick = false;
              Log.v("test", "cancle waitDoubleClick");
            }
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
        }   
      };
      checkUpdate.start();   
      viewA.setText("");
    }else{
      //双击
      waitDoubleClick = false;
      onDoubleClick();
    }
    return true;   
  }   

  //双击事件
  private void onDoubleClick(){
    viewA.setText("dobule click");
    Log.v("test", "DoubleClick");      
  }
  


一下是监听onTouch时间来实现的双击,当然,可以控制双击间隔:
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				if(MotionEvent.ACTION_DOWN == event.getAction()){
					count++;
					if(count == 1){
						firClick = System.currentTimeMillis();
						x = event.getX();
						y = event.getY();
					} else if (count == 2){
						secClick = System.currentTimeMillis();
						if(secClick - firClick < 1000 && x==event.getX() && y == event.getY()){
							//这里就是双击事件了...
						}
						count = 0;
						firClick = 0;
						secClick = 0;
						x = 0;
						y = 0;
					}
				}
				return true;
			}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics