¿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.
- Cómo obtener las coordenadas X, Y correctas de un DragEvent.ACTION_DROP
- Android - Restringir arrastrar y soltar a un cuadro delimitador
- OnDragListener - ¿hay alguna biblioteca de compatibilidad para niveles de Android <11?
- ¿Por qué estoy recibiendo este error "recurso esperado de tipo raw" en Android Studio?
- Tamaño androide de la sombra del dragshadowbuilder
¿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?
- Cómo arrastrar varias vistas de botón en java
- Drag'n'Drop ConcurentModificationException
- ¿Cómo obtener la vista mientras arrastrar y soltar en android?
- Arrastrar y soltar sin eliminar del propietario
- ¿Cómo transformar currentTimeMillis a un formato de fecha legible?
- Android: Problema de arrastrar y soltar
- OnDragListener no recibe DRAG_STARTED o DRAG_ENDED, pero obtiene ACTION_DROP
- Cómo reproducir el archivo de audio Mp3 desde el servidor
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.
- ¿Cómo puedo utilizar ACTION_VOICE_SEARCH_HANDS_FREE en Android 4.1?
- Los eventos generados por el mono de Android no son los mismos cuando la semilla es la misma