// 计算点击的次数
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;
}
}
上面是一个实现了触摸(OnTouchListener)接口的双击事件监听器,双击间隔不大于500ms,供大家参考,此值可以自行设置。 原理:记录第一次和第二次点击时的系统时间,当第二次的时间与第一次的时间差小于300ms时,进行双击的操作响应