2010-07-09 14 views
6

को फायर नहीं कर रहा है। मैं एक ऐप में चुटकी-ज़ूम लागू करने की कोशिश कर रहा हूं और ऑन टच इवेंट के साथ समस्याएं हैं। ऐसा प्रतीत होता है कि & सूचक नीचे तुरंत आग नहीं लगाते हैं, जैसे कि जब तक कोई कार्रवाई नहीं होती है तब तक आपको पॉइंटर ऊपर या नीचे नहीं मिलेगा। तो क्या होता है यदि दोनों उंगलियों ने स्क्रीन को लगभग एक साथ दबाया है कि दूसरी उंगली (पॉइंटर (1) होना चाहिए) पॉइंटर डाउन कहने से पहले एक कदम की कार्रवाई हो जाती है, जिससे कोड लगता है कि यह एक डीआरएजी एक चुटकी ज़ूम नहीं है। किसी और ने यह देखा? वैसे भी इसके आसपास? धन्यवाद।ऑन टच इवेंट कभी-कभी ACTION_POINTER_DOWN

उत्तर

0

मेरे पास मेरी परियोजना में एक ही समस्या थी। अगर मैं स्क्रीन को छूता हूं और मेरी उंगलियां बहुत करीब होती हैं तो सिस्टम को मल्टीटाउच इवेंट का एहसास नहीं होता है। मुझे लगता है कि ऐसा इसलिए है क्योंकि जब आपकी उंगलियां बहुत करीब होती हैं तो सिस्टम इसे एक ही उंगली के रूप में देखता है।

हो सकता है कि आप getSize() विधि का उपयोग करके इस धारणा को जांच सकें, जब आप एक ही उंगली के साथ स्क्रीन को स्पर्श करते हैं और जब आप दो अंगुली के करीब स्क्रीन को स्पर्श करते हैं तो स्क्रीन को दबाया जाता है।

+0

सलाह के लिए धन्यवाद, जो काम में आ जाएगा मुझे यकीन है। लेकिन मुझे यकीन नहीं है कि यह मेरी समस्या है क्योंकि इससे कोई फर्क नहीं पड़ता कि मैं स्क्रीन को स्पर्श करता हूं। डीबगर का उपयोग करके मैं देख सकता हूं कि सूचक ऊपर और नीचे की घटनाओं में हमेशा देरी हो रही है, और एक चाल घटना के बाद होती है (और उस घटना में चलने की घटना हमेशा एक ही सूचक है)। मैंने "डॉटी" एप भी कोशिश की और इसमें एक ही व्यवहार दिख सकता था। क्या यह हार्डवेयर समस्या हो सकती है? मेरे पास एक ईवो डब्ल्यू/कस्टम रोम है। धन्यवाद। – JStew

0

कस्टम ईएम के साथ एक समस्या होने के लिए बाहर निकला जो मैंने अपने ईवो में फहराया था। उनकी सलाह के लिए फिर से धन्यवाद करने के लिए धन्यवाद क्योंकि यह मेरे पास एक और बग बन गया।

1

एक ही मुद्दा पता चला कि ACTION_POINTER_2_DOWN मेरे एप्लिकेशन में निकाल दिया जा रहा था जब मैं दूसरी उंगली को छुआ का सामना करना पड़ा और उसके बाद ACTION_MOVE निकाल दिया गया था getAction() विधि जो इस सूची

के खिलाफ जांच की ज़रूरत घटना संख्या देता है
+0

http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_MOVE – Omkar

29

अपने स्विच में MotionEvent.ACTION_MASK को शामिल करना सुनिश्चित करें। उदाहरण के लिए:

switch(event.getAction() & MotionEvent.ACTION_MASK){ 
case MotionEvent.ACTION_DOWN: 
some code 
break; 
case MotionEvent.ACTION_POINTER_DOWN: 
ETC 
+0

वाह! यह वास्तव में मेरी समस्या हल! मैं समझ नहीं सकता क्यों ... लेकिन हे! धन्यवाद: डी – Supercelo

+0

आप दा असली mvp @tayler! – Sipty

+0

आपने मेरा दिन प्रिय बचाया .. thnxx बहुत! –

0

मैं इस के साथ एक ही समस्या हल हो जाती है:

switch(event.getActionMasked()) { 
    case MotionEvent.ACTION_POINTER_DOWN: 
     //your code 
    break; 
} 
0

मैंने देखा है कि यह (MotionEvent.ACTION_POINTER_DOWN) मामले यदि onTouch (घटना) पद्धति के रूप में वापस आ गया है निकाले जाने सच नीचे दिए गए के रूप में:

@Override 
public boolean onTouchEvent(MotionEvent event) { 

    switch(motionEvent.getAction() & MotionEvent.ACTION_MASK) { 
     case MotionEvent.ACTION_POINTER_DOWN: 
     //your code 
     break ; 
    } 
    return true; 
} 

नोट: यदि onTouch() विधि आर है MotionEvent.ACTION_DOWN केवल सुनी हो रही रिटर्न सुपर.ऑन टचवेन्ट (घटना) के रूप में एक बूलियन मान को eturned; इसलिए इस स्थिति से बचने के लिए सच के रूप में सुनिश्चित करें।

संबंधित मुद्दे