2011-01-28 11 views
12

ठीक है, यह सौदा है। मैं छवियों के क्रम को बदलने के लिए अपनी विस्तारित गैलरी कक्षा में वस्तुओं को स्थानांतरित करना चाहता हूं। देर तक दबाए रखकरऑनड्रा() पर देखें लेआउट के पीछे ड्रॉ

  • वर्तमान चयनित आइटम को हटा दें,
  • उपयोग onDraw() एक ही छवि आकर्षित करने के लिए तो मैं रिलीज पर onTouchEvent()
  • का उपयोग कर चारों ओर स्थानांतरित कर सकते हैं आइटम जोड़ें: जिस तरह से मैं अब यह कर रहा हूँ फिर

यह ठीक काम करता है लेकिन समस्या यह है कि onDraw() विधि का उपयोग करते समय यह गैलरी आइटम के पीछे छवि खींच लेगा। क्या खींचा जाने की प्राथमिकता को बदलने का कोई तरीका है?

+0

लिया आप वास्तव में छवि ड्राइंग के बाद super.onDraw() कर रहे हैं? – pankajagarwal

+0

अच्छी तरह से गैलरी में छवि गैलरी द्वारा खींची जाती है, इसलिए मेरे पास वास्तव में उस पर नियंत्रण नहीं है। मैं बस विस्तारित गैलरी वर्ग – Nick

उत्तर

33

खैर मैं इस एक पूरी तरह से अलग दिशा में जाने के बाद पता चला =/

यहां लोगों को है कि एक ही समस्या है के लिए समाधान है:

निर्माता में (या कहीं और आप घटक को प्रारंभ) सेट setWillNotDraw(false) और dispatchDraw() ओवरराइड करें। dispatchDraw()ViewGroup बच्चों को आकर्षित करता है ताकि आप खुद को तय कर सकें कि क्या आप पीछे हटना चाहते हैं या अन्य विचारों के शीर्ष पर जाना चाहते हैं।

उदाहरण से Custom drawing on top of Gallery view (and it's child views)

@Override 
protected void dispatchDraw(Canvas canvas) { 
    super.dispatchDraw(canvas); 

    // do your drawing stuff here 
    canvas.drawPath(mPath,mPaint); 
} 
+2

+1 के भीतर से उन छवियों को आकर्षित करना चाहता हूं क्योंकि यह जानकारी खोज करके खोजना मुश्किल है। ग्रिड व्यू के शीर्ष पर स्क्रीन सहायता पर आकर्षित करने के लिए सफलतापूर्वक इस दृष्टिकोण का उपयोग किया गया। मामूली टाइपो: setWillNotDraw (झूठा) कहा जाना चाहिए; willNotDraw() उसी पैरामीटर के लिए गेटर है। एनबी .: setWillNotDraw (झूठा) ऑप्टिमाइज़ेशन को अक्षम करता है जो मानते हैं कि एक व्यू ग्रुप अपने बच्चे के विचारों पर पूरी तरह से आकर्षित होने पर निर्भर करता है। – Carl

+0

कृपया अधिक कोड नमूना साझा करें। कोड को देखकर समझना वाकई आसान है। +1 –

+0

+1 क्या आपको अभी भी यह याद है? क्या आप गैलरी की छवियों पर या कस्टम दृश्य में प्रेषण ड्रा() को ओवरराइड करते हैं? या आप सब एक ही दृश्य में कर रहे हैं? किसी भी मदद की सराहना – quinestor

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