android处理双击事件

http://www.2cto.com/kf/201109/102375.html

需求:一些透明的button 用来处理软件环境的改变

  //计算点击的次数 
    private int count; 
    //第一次点击的时间 long型 
    private long firstClick; 
    //最后一次点击的时间 
    private long lastClick; 
    //第一次点击的button的id 
    private int firstId; 
    //调试环境是否开启 
    private boolean isDebugOpen = false; 
    //日志环境是否开启 
    private boolean isLogOpen = false;          
   
    private class ButtonOnTouchListener implements OnTouchListener{ 
 
        @Override 
        public boolean onTouch(View v, MotionEvent event) { 
            if(event.getAction()==MotionEvent.ACTION_DOWN){ 
                //如果第二次点击 距离第一次点击时间过长   那么将第二次点击看为第一次点击 
                if(firstClick!=0 && firstId!=0 && System.currentTimeMillis()-firstClick>300){ 
                    count = 0; 
                    firstId = 0; 
                } 
                count++; 
                if(count==1){ 
                    firstClick = System.currentTimeMillis(); 
                    //记录第一次点得按钮的id 
                    firstId = v.getId(); 
                }else if(count==2){ 
                    lastClick = System.currentTimeMillis(); 
                    //两次点击小于300ms 也就是连续点击 
                    if(lastClick-firstClick<300){ 
                        //第二次点击的button的id 
                        int id = v.getId(); 
                        //判断两次点击的button是否是同一个button 
                        if(id == firstId){ 
                            Log.v("-----Double Click-----","btn_LeftKey"); 
                            //根据ID值的处理函数 
                            switch(id){ 
	                            case R.id.leftUp: 
	                            	break; 
                            	case R.id.rightUp: 
                            		break; 
                            		//... 
                            	}
							 } 
						} 
						clear(); 
					} 
					  } return false; 
					        } 
                            //清空状态 
							private void clear(){ 
	                            count = 0; 
	                            firstClick = 0; 
	                            lastClick = 0; 
	                            firstId = 0; 
                            } 
		                }


    

http://blog.csdn.net/wwang196988/article/details/6790635

// 计算点击的次数  
private int count = 0;  
// 第一次点击的时间 long型  
private long firstClick = 0;  
// 最后一次点击的时间  
private long lastClick = 0;  
private ButtonOnTouchListener listener = new ButtonOnTouchListener();  
private class ButtonOnTouchListener implements OnTouchListener  
{  
    @Override  
    public boolean onTouch(View v, MotionEvent event)  
    {  
          
            if (event.getAction() == MotionEvent.ACTION_DOWN)  
            {  
                // 如果第二次点击 距离第一次点击时间过长 那么将第二次点击看为第一次点击  
                if (firstClick != 0 && System.currentTimeMillis() - firstClick > 500)  
                {  
                    count = 0;  
                }  
                count++;  
                if (count == 1)  
                {  
                    firstClick = System.currentTimeMillis();  
                }   
                else if (count == 2)  
                {  
                    lastClick = System.currentTimeMillis();  
                    // 两次点击小于500ms 也就是连续点击  
                    if (lastClick - firstClick < 500)  
                    {  
                        //Log.v("Double", "Double");  
                        if (vv.isScale())  
                        {  
                            vv.setScale(false);  
                        }  
                        else  
                        {  
                            vv.setScale(true);  
                        }  
                    }  
                    clear();  
                }  
            }  
  
        return false;  
  
    // 清空状态  
    private void clear()  
    {  
        count = 0;  
        firstClick = 0;  
        lastClick = 0;  
    }  
}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值