Supongo que tiene una aplicación de pantalla de inicio, al menos una vista con elementos que desea arrastrar y soltar.
Como Austyn Mahoney dice en su comentario que puedes referir al código de inicio open source. Pero como arrastrar y soltar es una función fácil de implementar, también puede manejarlo usted mismo.
Necesita que sus elementos se almacenen, p. una matriz . Luego revisa los tipos de eventos.
En cada ACTION_DOWN necesita comprobar si un artículo fue golpeado por el usuario. P.ej. si tenemos círculos como elementos, necesitamos capturar las coordenadas ACTION_DOWN actuales para que podamos verificar que estén dentro del elemento y obtener la ID del artículo que el usuario está a punto de arrastrar de acuerdo con las coordenadas ACTION_DOWN.
En ACTION_MOVE solo necesita pasar las coordenadas xey actuales para volver a dibujar en la nueva posición.
Bueno, esto es solo la función de arrastrar y soltar. Ahora necesita probar que el artículo esté en un sector específico al que llama bin. Entonces defines un rectángulo en tu pantalla. en ACTION_MOVE tu prueba es que el elemento esté dentro de esta área, eso es todo.
Sólo un código de ejemplo para arrastrar y soltar:
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;
}
Si varita para excavar más en el código de echar un vistazo a anddev.org - drag and drop.
dulce .. me gustaría saber cómo hacer eso también Permítanme investigar un poco, me pondré en contacto con usted si encuentro algo. – Shardul
¡Agradable! Tengo una prueba de concepto que funciona ahora. Estoy interesado en tu implementación. – Peterdk
La aplicación de inicio en Android a la que te refieres es de código abierto. Creo que puede aprender de su implementación mirando el código fuente. http://android.git.kernel.org/?p=platform/packages/apps/Launcher.git;a=summary –