双击事件iv_drag.setOnClickListener(new OnClickListener(){//执行控件被点击时将执行的代码/**注:双击事件就是间隔时间很短的单机事件可以自定义一个双击事件*/if(firstClickTime>0){//判断用户是否是第二次点击long sencondClickTime = SystemClock.uptimeMillis();//获得用户第二次点击的时间long dtime = sencondClickTime - firstClickTime;//获得两次单击的时间间隔if(dtime<500){//如果时间间隔小于500毫秒将弹出土司Toast.makeText(this, "双击了", 0).show();}else{//如果间隔时间过长将firstClickTime重置firstClickTime = 0;}return;}firstClickTime = SystemClock.uptimeMillis();//获得用户第一次点击的时间(注:一旦用户点击firstClickTime将被赋值)//添加子线程的和原因是,让用户在单击一次后让线程睡眠500ms如果用户在有效的双击时间内还没有再一次单击那么就将firstClickTime 置为0;new Thread(){public void run() {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}firstClickTime = 0;};}.start();});
//定义一个数组用来存放当前点击时的系统开机时间long[] mHits = new long[3];//三击事件public void click(View view){//src 拷贝的源数组//srcPos 从源数组的那个位置开始拷贝.//dst 目标数组//dstPos 从目标数组的那个位子开始写数据//length 拷贝的元素的个数System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);mHits[mHits.length-1] = SystemClock.uptimeMillis();if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {Toast.makeText(this, "恭喜你,3次点击了。", 0).show();}}}- 注:其中500是三次点击事件要在500ms内完成,可以修改
原文:http://www.cnblogs.com/candledragle/p/4245307.html