0
我一直在到處尋找了,簡單地獲得一個X和一個Y值碼每個指針以及每個指針的一些不同的布爾變量,以便輕鬆理解發生了什麼。
我一直在自己的代碼上工作,但它不能像我想的那樣工作。它會保存四對不同的X座標和Y座標,但問題是每當從屏幕上移除一個手指時,所有指針(在觸摸[]中的布爾值)在一段時間內都會變爲false。有誰知道如何讓每個指針都是獨立的,這樣當一個手指從屏幕上移除時,只有布爾數組中的值會變成false?
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int action = (event.getAction() & MotionEvent.ACTION_MASK);
int pointCount = event.getPointerCount();
for (int i = 0; i < pointCount; i++) {
int id = event.getPointerId(i);
if (id < MAX_NUMBER_OF_POINT) {
xA[id] = (int) event.getX(i);
yA[id] = (int) event.getY(i);
if ((action == MotionEvent.ACTION_DOWN)
|| (action == MotionEvent.ACTION_POINTER_DOWN)
|| (action == MotionEvent.ACTION_MOVE)) {
touching[id] = true;
} else {
touching[id] = false;
}
}
}
for (int i2 = 0; i2 < 5; i2++) {
if (touching[i2] == false) {
xA[i2] = 0;
yA[i2] = 0;
}
}
x1 = xA[0];
x2 = xA[1];
x3 = xA[2];
x4 = xA[3];
y1 = yA[0];
y2 = yA[1];
y3 = yA[2];
y4 = yA[3];
return true;
}
謝謝!
謝謝你的回答!你有什麼想法如何在我的代碼中實現?我正在閱讀開發者頁面,但我無法將它們放在一起= P – Eric 2012-08-11 22:40:58
對不起,不是在PC上進行測試,而是循環遍歷所有指針,只需使用getActionIndex即可。然後,而不是使用操作,爲ACTION_POINTER_UP和DOWN測試getActionMasked。另外,你可能需要清除所有ACTION_UP – weston 2012-08-12 10:19:11
好的謝謝,我會嘗試!我一直在尋找兩天的示例代碼,只是返回多個指針的座標,但我還沒有找到任何。應該真的很難遇到? – Eric 2012-08-12 11:50:08