Zakładam, że masz aplikację podobną do ekranu głównego, co najmniej widok z elementami, które chcesz przeciągnąć i upuścić.
Podobnie jak Austyn Mahoney mówi w swoim komentarzu, można odwołać się do kodu domowego open source kodu głównego. Ale ponieważ funkcja przeciągnij i upuść jest łatwa do implementacji, możesz sobie z nią poradzić we własnym zakresie.
Potrzebujesz przedmiotów do przechowywania w np. array. Następnie przejdź przez typy zdarzeń.
Na każdym ACTION_DOWN należy sprawdzić, czy element został trafiony przez użytkownika. Na przykład. jeśli mamy kręgi jako elementy, musimy uchwycić bieżące współrzędne ACTION_DOWN, abyśmy mogli sprawdzić, czy znajdują się one wewnątrz elementu i uzyskać identyfikator elementu, który użytkownik zamierza przeciągnąć zgodnie ze współrzędnymi ACTION_DOWN.
Po ACTION_MOVE wystarczy przekazać bieżące współrzędne xiy do obiektu, aby przerysować je w nowej pozycji.
Cóż, to tylko funkcja przeciągnij i upuść. Teraz musisz przetestować, czy element znajduje się w określonym sektorze, który nazywasz pojemnikiem. Więc definiujesz prostokąt na ekranie. w ACTION_MOVE sprawdź, czy przedmiot znajduje się w tym obszarze, to wszystko.
Tylko niektóre przykładowy kod dla przeciągnij i upuść:
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;
}
Jeśli różdżka kopać bardziej w kodzie spojrzeć anddev.org - drag and drop.
słodkie .. Chciałbym się dowiedzieć, jak to zrobić zbyt Pozwolę sobie zrobić kilka badań, które odezwę się, jeśli coś znajdę. – Shardul
Nice! Mam teraz gotowy dowód działania. Jestem zainteresowany twoją implementacją. – Peterdk
Aplikacja uruchamiająca w systemie Android, do której się odwołujesz, jest open source. Myślę, że możesz być w stanie uczyć się na ich implementacji, patrząc na kod źródłowy. http://android.git.kernel.org/?p=platform/packages/apps/Launcher.git;a=summary –