2012-07-05 17 views
6

प्रलेखन कि के बारे में यह कहना:एंड्रॉयड - कैसे संभाल करने के लिए दो उंगली स्पर्श

एक इशारा पहले सूचक का स्थान नीचे में प्रावधान है कि ACTION_DOWN के साथ एक प्रस्ताव घटना के साथ शुरू होता है। प्रत्येक अतिरिक्त सूचक जो नीचे या ऊपर जाता है, फ्रेमवर्क ACTION_POINTER_DOWN या ACTION_POINTER_UP के अनुसार एक गति ईवेंट उत्पन्न करेगा।

तो मैं अपने गतिविधि में onTouchEvent समारोह के ओवरराइड किया है:

@Override 
public boolean onTouchEvent(MotionEvent MEvent) 
{ 

    motionaction = MEvent.getAction(); 

    if(motionaction == MotionEvent.ACTION_DOWN) 
    { 
     System.out.println("DEBUG MESSAGE POINTER1 " + MEvent.getActionIndex()); 
    } 

    if(motionaction == MotionEvent.ACTION_POINTER_DOWN) 
    { 
     System.out.println("DEBUG MESSAGE POINTER2 " + MEvent.getActionIndex()); 
    } 

} 

दुर्भाग्य से दूसरा अगर दर्ज नहीं किया गया है। गतिविधि में 2 ऑन टच लिस्टनर के साथ 2 व्यू शामिल हैं, मुझे पता है कि ऑन टचएवेंट केवल तभी कॉल किया जाता है जब गतिविधि का दृश्य घटना का उपभोग नहीं करता है इसलिए मैंने श्रोता में झूठी वापसी करने की कोशिश की और इस तरह से मैं केवल पहचान सकता हूं पहला उंगली स्पर्श लेकिन यह श्रोता से ACTION_UP ईवेंट प्राप्त करने से बचें और मुझे दूसरी उंगली स्पर्श को पहचानने की अनुमति न दें। मैंने श्रोता में भी सच होने की कोशिश की लेकिन मैन्युअल रूप से ऑन टचवेन्ट फ़ंक्शन का आह्वान करने के बाद, लेकिन यह मुझे केवल पहले उंगली स्पर्श को पहचानने की अनुमति देता है।

मेरे कोड में क्या गलत है?

उत्तर

15

मेरा मानना ​​है कि अपने कोड की तरह मास्किंग आपरेशन याद आ रही है:

switch (motionaction & MotionEvent.ACTION_MASK) { 
case MotionEvent.ACTION_POINTER_DOWN: 
} 

इस कोड ACTION_POINTER_DOWN के लिए जाँच करने के लिए सक्षम होना चाहिए।

शुभकामनाएँ & हमें बताएं कि क्या होता है।

टॉमी Kwee

+0

हाँ यह समस्या है। ACTION_MASK के साथ 'और' जोड़ना समस्या हल हो गया। मुझे क्या परेशान करना है कि आधिकारिक दस्तावेज में इसके बारे में कुछ भी नहीं कहना है। – Bemipefe

+0

बर्नाइप, मैं आपके लिए सर महसूस करता हूं। कोई भी दस्तावेज़ीकरण में गलती कर सकता है। यह शायद एक आम त्रुटि है क्योंकि कभी-कभी आपको मास्क करने की आवश्यकता नहीं होती है। अगली बार मेरा एकमात्र सुझाव यह देखने के लिए डीबगर का उपयोग करना है कि कौन से मूल्य आने वाले हैं, और देखें कि क्या किसी भी मूल्य की अपेक्षा की जाती है। एक और एंड्रॉइड प्रशंसक के लिए शुभकामनाएँ! –

+0

मैं ACTION_POINTER_UP और ACTION_POINTER_DOWN को पकड़ सकता हूं लेकिन मुझे ACTION_MOVE को पकड़ने का तरीका नहीं मिल रहा है। मैं दृश्य श्रोता में एक ही उंगली मोड में इसे पकड़ सकता हूं, लेकिन जब मैं स्क्रीन पर दूसरी उंगली डालता हूं तो केवल एक चीज जिसे मैं ऑन टचवेन्ट विधि से ग्रुप कर सकता हूं वह यूपी और नीचे है और मूव एक्शन नहीं है। इसे कैसे ठीक किया जा सकता है? – Bemipefe