मुझे लगता है कि आपके पास एप्लिकेशन की तरह होमस्क्रीन है, कम से कम उन वस्तुओं के साथ एक दृश्य जिसे आप खींचना और छोड़ना चाहते हैं।
ऑस्टिन महनी की तरह उनकी टिप्पणी में कहा गया है कि आप एंड्रॉइड ओपन सोर्स होमस्क्रीन कोड पर जा सकते हैं। लेकिन चूंकि ड्रैग और ड्रॉप एक आसान कार्यान्वयन सुविधा है, इसलिए आप इसे अपने आप भी संभाल सकते हैं।
आपको अपने आइटमों को संग्रहीत करने की आवश्यकता है उदा। एक सरणी। फिर घटना प्रकारों के माध्यम से जाओ।
प्रत्येक ACTION_DOWN पर आपको यह जांचने की आवश्यकता है कि उपयोगकर्ता द्वारा कोई आइटम मारा गया था या नहीं। जैसे यदि हमारे पास मंडलियों के रूप में मंडल हैं, तो हमें वर्तमान ACTION_DOWN निर्देशांक को कैप्चर करने की आवश्यकता है ताकि हम उन्हें आइटम के भीतर रहने के लिए जांच सकें और उस आइटम की आईडी प्राप्त कर सकें जिसे उपयोगकर्ता ACTION_DOWN निर्देशांक के अनुसार खींचने वाला है।
ACTION_MOVE पर आपको नई स्थिति पर इसे फिर से निकालने के लिए आइटम को वर्तमान एक्स और वाई निर्देशांक पास करने की आवश्यकता है।
वैसे यह सिर्फ ड्रैग और ड्रॉप सुविधा है। अब आपको आइटम को उस विशिष्ट क्षेत्र में जांचने की आवश्यकता है जिसे आप बिन कहते हैं। तो आप अपनी स्क्रीन पर एक आयताकार परिभाषित करते हैं। ACTION_MOVE में आइटम को इस क्षेत्र के भीतर होने का परीक्षण करें, यह सब कुछ है।
खींचें और ड्रॉप के लिए बस कुछ उदाहरण कोड:
public boolean onTouchEvent(MotionEvent event){
int itemID = 0;
int X = (int)event.getX();
int Y = (int)event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
for(Items item : dragable_item){
//center coords of the item
int centerX = item.getX() + 25;
int centerY = item.getY() + 25;
//calculate the distance (radius) from touch to item
//get item to drag
if(distance < 20){
itemId = item.getID(); break;
}
}
break;
case MotionEvent.ACTION_MOVE:
if(itemID > 0){
Items[itemID-1].setX(X-25);
Items[itemID-1].setY(X-25);
}
break;
}
}
invalidate(); return true;
}
आप कोड में और अधिक खुदाई .. मैं चाहेंगे anddev.org - drag and drop.
स्रोत
2011-01-19 06:29:22
मिठाई पर एक नजर है छड़ी तो पता चला है कि बहुत कैसे करना है .. मुझे कुछ शोध करने दो अगर मुझे कुछ मिल जाए तो मैं वापस आऊंगा। – Shardul
अच्छा! मेरे पास अब अवधारणा का एक कामकाजी सबूत है। आपके कार्यान्वयन में दिलचस्पी है। – Peterdk
एंड्रॉइड में लॉन्चर एप्लिकेशन जिसका आप जिक्र कर रहे हैं वह ओपन सोर्स है। मुझे लगता है कि आप स्रोत कोड को देखकर उनके कार्यान्वयन से सीख सकते हैं। http://android.git.kernel.org/?p=platform/packages/apps/Launcher.git;a=summary –