码迷,mamicode.com
首页 > 移动开发 > 详细

Android监听连续点击次数代码实现

时间:2015-04-07 08:29:34      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:google双击算法   android实现双击事件   

一般实现

我们知道,一般实现双击事件,可以通过new OnClickListener()监听点击事件,然后记录前后两次点击距离开机的时间,由时间差在一定范围实现,代码如下:

	    	long firstClickTime = 0;
			@Override
			public void onClick(View view) {
				if(firstClickTime > 0){
					long secondClickTime = SystemClock.uptimeMillis();//距离上次开机时间
					long dtime = secondClickTime - firstClickTime;
					if(dtime > 500){
						Toast.makeText(getApplicationContext(), "实现双击事件监听", 0).show();
					} else{
						firstClickTime = 0;
					}
					return ; 
				}
				firstClickTime = SystemClock.uptimeMillis();
			}

Google实现算法

看完上面实现,思路很简单,但是当要实现多次点击时,那上面的可能就代码量很大了,这里写下GoogleAPI提供的方法

<span style="white-space:pre">		</span>//数组存储点击次数
	    	long[] mHits = new long[2];
			@Override
			public void onClick(View v) {
				//实现双击方法
				//src 拷贝的源数组
				//srcPos 从源数组的那个位置开始拷贝.
				//dst 目标数组
				//dstPos 从目标数组的那个位子开始写数据
				//length 拷贝的元素的个数
				System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
				//实现左移,然后最后一个位置更新距离开机的时间,如果最后一个时间和最开始时间小于500,即双击
				mHits[mHits.length - 1] = SystemClock.uptimeMillis();
				if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
					// 双击居中了。。。屏幕的一半和归属地的一半,更新窗口,保存lastX
					params.x = wm.getDefaultDisplay().getWidth()/2-view.getWidth()/2;
					wm.updateViewLayout(view, params);
					Editor editor = sp.edit();
					editor.putInt("lastx", params.x);
					editor.commit();
				}
			}



Android监听连续点击次数代码实现

标签:google双击算法   android实现双击事件   

原文地址:http://blog.csdn.net/zeb_perfect/article/details/44915779

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!