2011-05-05 127 views
6

我能成功使用下面的代碼來記錄在屏幕上觸摸的兩個手指的座標:Android 3.0的手指觸摸檢測

case MotionEvent.ACTION_MOVE: 
Log.d("TOUCH", "test ACTION MOVE" + event.getPointerCount()); 
Log.d("TOUCH", "test ACTION MOVE ID" + event.getPointerId(0) + " "+event.getPointerId(1)); 
if(event.getPointerCount()==3) 
{ 

x0 = (int) event.getX(event.getPointerId(0)); 
y0 = (int) event.getY(event.getPointerId(0)); 
x1 = (int) event.getX(event.getPointerId(1)); 
y1 = (int) event.getY(event.getPointerId(1)); 
x2 = (int) event.getX(event.getPointerId(2)); 
y2 = (int) event.getY(event.getPointerId(2)); 

Log.d("TOUCH", "test ACTION DOWN " + " values = " + x0 + " " + y0 + " " 
+ x1 + " " + y1+ " "+x2 + " " + y2); 
} 

但在上面的代碼我不是能夠探測到超過2觸摸點在一個實例。即使pointerCount()永遠不會超過2.

如何獲得更多2指的觸摸座標?我在Android 2.2上運行此代碼

+0

嗨,我不知道這會幫助你,但http://getandroidstuff.com/familiar-android-platform-android-3rd-edition-download-書/頁面220,章節Multi-Touch。 – Pasha 2011-05-05 06:56:20

回答

2

這是前段時間,但無論如何。答案是,儘管android可以跟蹤256個手指,但是當前的實現將其限制爲2個手指。

我不確定蜂窩,但我猜它具有相同的「問題」。

+0

好吧,這吸! ( )如果我們實際上不能使用它們,我有什麼支持點 – 2011-07-14 04:42:01

+0

我同意,由於競賽支持非常好的3個手指手勢,所以它非常糟糕,OMA(開放移動聯盟)可以在一定時間內完成支持支持2個以上的手指,而不會破壞向後兼容性 – Augusto 2011-07-14 07:11:59

+0

據我所知,它可能是Android Engg團隊的返工,但爲什麼我們現在不能擁有它?誰知道OMA何時會提供支持? – 2011-07-19 12:16:34

1

我已經確認4觸及一些Android 2.3.5設備,以及我迄今爲止測試過的每個3.x和4.x設備。看起來,至少從API 8+開始,支持兩種以上的觸摸,但它依賴於設備。

0

使用超過兩個手指的多點觸控只能在Android 4.1.2或更高版本中執行,而且不同的公司已根據自己的需求和應用定製了Android版本,例如在4.1.2版本中,Qmobile只支持五種音效但偉大的三星公司使用超過11個手指

0
 firstFingerX = MotionEventCompat.getX(ev, 0); firstFingerY = MotionEventCompat.getY(ev, 0); 
if (numberOfFingers == 2) { 
    Log.e("mine", "Integer: " + String.valueOf((int)MotionEventCompat.getY(ev, 1))); 
    secondFingerX = MotionEventCompat.getX(ev, 1); secondFingerY = MotionEventCompat.getY(ev, 1); 
} 
if (numberOfFingers == 3) { 
    Log.e("mine", "Integer: " + String.valueOf((int)MotionEventCompat.getY(ev, 2))); 
    thirdFingerX = MotionEventCompat.getX(ev, 2); thirdFingerY = MotionEventCompat.getY(ev, 2); 

}