Suppongo che tu abbia un'applicazione simile a una schermata iniziale, almeno una vista con elementi che desideri trascinare e rilasciare.
Come Austyn Mahoney dice nel suo commento è possibile refere per l'android open source codice homescreen. Ma dal momento che il drag and drop è una funzionalità facile da implementare, puoi gestirlo da solo.
È necessario archiviare gli articoli in es. un array . Quindi passa attraverso i tipi di eventi.
Ogni ACTION_DOWN è necessario verificare se un elemento è stato colpito dall'utente. Per esempio. se abbiamo cerchi come elementi dobbiamo catturare le coordinate attuali di ACTION_DOWN in modo da poterle verificare all'interno dell'oggetto e ottenere l'ID dell'oggetto che l'utente sta per trascinare secondo le coordinate di ACTION_DOWN.
On ACTION_MOVE è sufficiente passare le coordinate xey attuali all'elemento per ridisegnarlo nella nuova posizione.
Bene, questa è solo la funzione di trascinamento della selezione. Ora è necessario verificare che l'articolo si trovi in un settore specifico che si chiama bin. Quindi definisci un rettangolo sullo schermo. in ACTION_MOVE il tuo test l'elemento per essere all'interno di questa area, questo è tutto.
Solo qualche esempio di codice per il drag and drop:
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;
}
Se bacchetta per scavare più nel codice di dare un'occhiata a anddev.org - drag and drop.
fonte
2011-01-19 06:29:22
dolce .. Vorrei sapere come fare anche questo .. Lasciami fare qualche ricerca ti risponderò se trovo qualcosa. – Shardul
Bello! Ho una prova di concetto funzionante ora. Sono interessato alla tua implementazione. – Peterdk
L'applicazione di avvio in Android a cui si fa riferimento è open source. Penso che potresti essere in grado di imparare dalla loro implementazione guardando il codice sorgente. http://android.git.kernel.org/?p=platform/packages/apps/Launcher.git;a=summary –