¿Cómo obtener el comportamiento de pantalla de inicio de arrastrar a bin, en mi propia aplicación?

En la pantalla de inicio de Android es posible eliminar los elementos arrastrándolos a la bandeja.

Me gustaría tener una funcionalidad similar en mi propia aplicación, donde tengo una vista con elementos de vista personalizada que quiero que el usuario arrastrar y droppable.

¿Hay una manera fácil de implementar esta funcionalidad? ¿O podría alguien darme los punteros que pueden dirigirme en la manera posiblemente difícil de alcanzar esto?

Supongo que tiene una pantalla de inicio como aplicación, al menos una vista con elementos que desea arrastrar y soltar.

Al igual que Austyn Mahoney dice en su comentario puede referirse al código de pantalla de inicio de Android código abierto . Pero como arrastrar y soltar es una característica fácil de implementar, también puedes manejarla por tu cuenta.

Necesita que sus elementos se almacenen en, por ejemplo, una matriz . A continuación, vaya a través de los tipos de evento.

En cada ACTION_DOWN necesitas comprobar si un elemento ha sido alcanzado por el usuario. Por ejemplo, si tenemos círculos como elementos necesitamos capturar las coordenadas ACTION_DOWN actuales para poder comprobar si están dentro del elemento y obtener el ID del elemento que el usuario está a punto de arrastrar de acuerdo con las coordenadas ACTION_DOWN.

En ACTION_MOVE sólo necesita pasar las coordenadas xey actuales al elemento para volver a dibujarlo en la nueva posición.

Bueno, esto es sólo la función de arrastrar y soltar. Ahora necesita probar para que el elemento esté en un sector específico al que llama bin. Así que usted define un rectángulo en su pantalla. En ACTION_MOVE tu prueba el elemento para estar dentro de esta área, eso es todo.

Sólo un ejemplo de código 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 quieres ver más en el código, echa un vistazo a anddev.org – arrastrar y soltar.

  • Android: realizar arrastrar y soltar mediante programación
  • Cómo escribir un InputStream potencialmente enorme para el archivo?
  • ¿Cómo obtener el formato de fecha seleccionado por el usuario en Android?
  • Java convertir la marca de tiempo UTC a DateTime local
  • ¿Cómo restringir el arrastrar y soltar a lo largo del eje y sólo en android?
  • Cómo hacer Drag & Drop Button en Android
  • Arrastrar y soltar con onDraglistener animar para volver a la posición original si no se deja caer en el objetivo
  • Cómo arrastrar el TextView al destino correcto otro TextView
  • Android obtiene tiempo en este formato `aaaa-mm-dd hh: mm: ss`
  • Cómo crear una sombra de arrastre personalizada?
  • Establecer anclaje personalizado al arrastrar una vista
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.