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;
}
}