我在onTouch方法中遇到了多個指針的問題。 所有指針都與一個布爾值相關聯,如果關閉,則返回true;如果關閉,則返回false。如果一個指針從true變爲false,這非常重要,它不會影響其他布爾值。指針問題! (Android)
我遇到的問題是,例如指針1和2下降,指針2上升(更改爲false),指針1也在該迭代中更改爲false。這是因爲當指針計數改變時指針ID正在改變。
對於如何解決我遇到的問題你有什麼建議嗎?
這是代碼:
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) {
Log.d(TAG, String.valueOf(id));
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 {
Log.e(TAG, "i: " + String.valueOf(i));
Log.e(TAG, "id: " + String.valueOf(id));
touching[id] = false;
}
}
}
for (int i2 = 0; i2 < 5; i2++) {
if (touching[i2] == false) {
// Log.d(TAG, "Was Here" + String.valueOf(i2));
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;
}
謝謝!
與http://developer.android.com/reference/android/view/MotionEvent.html#getActionIndex%28%29嘗試讓每個行動指針 – zapl 2012-08-10 22:59:00