Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android監聽連續點擊次數代碼實現

Android監聽連續點擊次數代碼實現

編輯:關於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提供的方法

		//數組存儲點擊次數
	    	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();
				}
			}



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved