निम्नलिखित कोड मैं मल्टीटाउच के लिए उपयोग करने का प्रयास कर रहा हूं। फिंगर एक सही ढंग से सेट होता है और जब मैं अपनी उंगली खींचता हूं तो चारों ओर घूमता है। फिंगर दो दिखाता है और गायब हो जाता है जब मैं अपनी अंगुली को छूता हूं और छोड़ देता हूं, लेकिन यह कभी नहीं चलता है। कोई विचार क्या गलत है?एंड्रॉइड मल्टीटाउच - दूसरा फिंगर ACTION.MOVE अनदेखा
मैंने developers blog पढ़ा है, मुझे अभी भी समझ में नहीं आता कि समस्याएं क्या हैं।
@Override
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction() & MotionEvent.ACTION_MASK;
int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT;
int pointerId = event.getPointerId(pointerIndex);
switch (action) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_POINTER_DOWN:
if (pointerId == 0)
{
fingerOneDown = 1;
fingerOneX = event.getX(pointerIndex);
fingerOneY = event.getY(pointerIndex);
}
if (pointerId == 1)
{
fingerTwoDown = 1;
fingerTwoX = event.getX(pointerIndex);
fingerTwoY = event.getY(pointerIndex);
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
case MotionEvent.ACTION_CANCEL:
if (pointerId == 0)
{
fingerOneDown = 0;
fingerOneX = event.getX(pointerIndex);
fingerOneY = event.getY(pointerIndex);
}
if (pointerId == 1)
{
fingerTwoDown = 0;
fingerTwoX = event.getX(pointerIndex);
fingerTwoY = event.getY(pointerIndex);
}
break;
case MotionEvent.ACTION_MOVE:
if (pointerId == 0)
{
fingerOneDown = 1;
fingerOneX = event.getX(pointerIndex);
fingerOneY = event.getY(pointerIndex);
}
if (pointerId == 1)
{
fingerTwoDown = 1;
fingerTwoX = event.getX(pointerIndex);
fingerTwoY = event.getY(pointerIndex);
}
break;
}
return true;
}
क्या यह एक बग है? मेरे पास एक ही अजीब व्यवहार है। मैंने Google में खोज की और कुछ अन्य लोगों के पास यह भी है। –
मुझे नहीं पता कि यह एक बग है, लेकिन यह एक दस्तावेजी चिंता है और पॉइंटर आईडी के माध्यम से इसे फिर से हल करता है। अगर कुछ भी हो, तो यह सिर्फ एक अजीब डिजाइन निर्णय हो सकता है। –
धन्यवाद, यह बहुत उपयोगी था !!! – Jbecwar