La plataforma de arrastrar y soltar de Android permite a los usuarios mover datos de una vista a otra en la presentación actual mediante un gesto gráfico de arrastrar y soltar. Desde API 11, se soporta arrastrar y soltar desde la vista a otras vistas o grupos de vistas. La plataforma incluye tres componentes importantes para soportar la funcionalidad de arrastrar y soltar:
- La clase Evento de Arrastre.
- El Auricular de Arrastre (Escuchador.
- Métodos de ayuda y clases
El proceso de arrastrar y soltar
Hay esencialmente cuatro pasos o estados en el proceso de arrastrar y soltar:
Inicio – Este evento ocurre cuando empieza a arrastrar un elemento a una presentación, su aplicación llama al método startDrag () para indicar al sistema que inicie un arrastre. Los argumentos dentro del método startDrag () proporcionan los datos a arrastrar, los metadatos de estos datos y un recordatorio para dibujar la sombra de arrastre.
El sistema responde primero llamando a su aplicación para obtener una sombra de deslizamiento. A continuación, muestra la sombra de arrastre en el dispositivo.
A continuación, el sistema envía un evento de arrastre con el tipo de acción ACTION_DRAG_STARTED a los auditores de eventos de arrastre registrados para todos los objetos View de la presentación actual.
Para continuar recibiendo eventos de deslizamiento, incluyendo un posible evento de borrado, un auditor de eventos de deslizamiento debe devolver true. Si el auditor de eventos de deslizamiento devuelve false, no recibirá ningún evento de deslizamiento para la operación actual hasta que el sistema envíe un evento de deslizamiento con un tipo de acción ACTION_DRAG_ENDED.
Continuar – El usuario continúa arrastrando. El sistema envía la acción ACTION_DRAG_ENTERED seguida de la acción ACTION_DRAG_LOCATION al registrador de eventos de deslizamiento registrado para la vista en la que entra el punto de ruta. El oyente puede elegir cambiar la apariencia del objeto View en respuesta al evento o puede reaccionar resaltando su vista.
El auditor de eventos de deslizamiento recibe una acción ACTION_DRAG_EXITED después de que el usuario haya movido la sombra de arrastre fuera del área de delimitación de vistas.
Dibujar (dejar caer): el usuario libera el elemento impulsado en el área de delimitación de una vista. El sistema envía al auditor del objeto View un evento de slip con el tipo de acción ACTION_DROP.
Finalizado – Inmediatamente después de la acción, tipo ACTION_DROP, el sistema envía un evento de deslizamiento con el tipo de acción ACTION_DRAG_ENDED para indicar que la operación de arrastre ha finalizado.
La clase DragEvent
El DragEvent representa un evento enviado por el sistema en diferentes momentos durante una operación de arrastrar y soltar. Esta clase proporciona pocas Constantes y métodos importantes que usamos durante el proceso de Arrastrar/Soltar.
Las constantes
Aquí están todas las constantes enteras disponibles como parte de la clase DragEvent.
Constantes y descripción1ACTION_DRAG_STARTEDSeñala el
inicio de una operación de arrastrar y soltar
.
2ACTION_DRAG_ENTEREDSignal to
a view that the slip point has entered the view delimitation area.
3ACTION_DRAG_LOCATIONSEnviar a
una vista después de ACTION_DRAG_ENTERED si la sombra de arrastre todavía está en el área de delimitación del objeto Display
.
4ACTION_DRAG_EXITEDSeñala
que el usuario ha movido la sombra de arrastre fuera del área de delimitación de vistas
.
5ACTION_DROPSignal indica
que el usuario ha liberado la sombra de arrastre y que el punto de arrastre se encuentra dentro del área de delimitación de la vista
.
6ACTION_DRAG_ENDEDSignals
to a view that the drag-and-drop operation is complete.
Modalidades de funcionamiento
A continuación se muestran algunos de los métodos más importantes y más utilizados disponibles en la clase DragEvent.
Sr.No.Constants & Description1int getAction()
Inspeccione el valor de acción de este evento.
2ClipData getClipData(
)Devuelve el objeto ClipData enviado al sistema como parte de la llamada startDrag ()
.
3ClipDescription getClipDescription(
)Devuelve el objeto ClipDescription contenido en ClipData.
4boolean getResult(
)Devuelve una indicación del resultado de la operación de arrastrar y soltar
.
5float getX(
)Obtiene la coordenada X del punto de arrastre.
6float getY(
)Obtiene la coordenada Y del punto de deslizamiento.
7String toString(
)Devuelve una representación de cadena de este objeto DragEvent.
Escuchar el evento Arrastrar
Si desea que una de las vistas de una presentación responda al evento Arrastrar, la vista implementa View.onDragListener o el método de recordatorio de instalación onDragEvent (DragEvent. Cuando el sistema llama al método o al auditor, les envía un objeto DragEvent explicado anteriormente. Puede tener un auditor y un método de recordatorio para el objeto Vista. Si esto sucede, el sistema primero llama al auditor y al recordatorio definido, siempre y cuando el auditor vuelva a ser verdadero.
La combinación del método OnDragEvent (DragEvent) y View OnDragListener es similar a la combinación de onTouchEvent () y View OnTouchListener utilizada con eventos táctiles en versiones anteriores de Android.
Inicio de un evento de arrastre
Primero se crea un ClipData y un ClipData Item para los datos en movimiento. Como parte del objeto ClipData, proporcione metadatos que se almacenan en un objeto ClipDescription en ClipData. Para una operación de arrastrar y soltar que no representa el movimiento de datos, puede utilizar null en lugar de un objeto real.
Luego, puede extender View.DragShadowBuilder para crear una sombra de arrastre para arrastrar la vista o simplemente puede usar View.DragShadowBuilder (Ver) para crear una sombra de marco predeterminada que tenga el mismo tamaño que el argumento View que se le transmitió, con el punto táctil centrado en la sombra de arrastre.
Ejemplo: Ejemplo
El siguiente ejemplo muestra la funcionalidad de un simple arrastrar y soltar usando View.setOnLongClickListener (), View.setOnTouchListener () y View.OnDragEventListener ().
StepDescription1Usted usará Android Studio IDE para crear una aplicación Android y nombrarla como Mi aplicación bajo un paquete com.example.saira_000.myapplication.2Modifique el archivo src / MainActivity.java y añada el código para definir los oyentes del evento y los métodos de recuperación de la imagen del logotipo utilizada en el ejemplo.3Copie la imagen abc.png en las carpetas res / drawable- *. Puede utilizar imágenes con una resolución diferente si desea proporcionarlas para diferentes dispositivos.4 Modifique el formato del archivo XML res / layout / activity_main.xml para definir la vista por defecto de las imágenes del logotipo.5 Ejecute la aplicación para iniciar el emulador de Android y compruebe el resultado de los cambios realizados en la aplicación.
Aquí está el contenido del fichero de actividad principal modificado src / MainActivity.java. Este archivo puede incluir cada uno de los métodos fundamentales del ciclo de vida.
Aquí está el contenido del archivo res / layout / activity_main.xml
En el siguiente código, abc indica el logotipo de astuces-informatique.com
Aquí está el contenido de res / values / strings.xml para definir dos nuevas constantes
Aquí está el contenido predeterminado de AndroidManifest.
xml
Intentemos ejecutar la aplicación Mi aplicación. Asumo que creaste tu AVD mientras instalabas el entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad del proyecto y haga clic en el icono Ejecutar Eclipse en la barra de herramientas. Studio Android instala la aplicación en tu AVD y se inicia y si todo va bien con tu configuración y aplicación, mostrará la siguiente ventana del emulador.
Ahora, haga clic en la imagen cuadrada blanca que se muestra y verá que la imagen se mueve un poco después de 1 segundo desde su lugar, este es el momento en que debe empezar a arrastrar la imagen. Puede arrastrarlo a la pantalla y soltarlo en una nueva ubicación.
Otros consejos interesantes:
- Android – Architecture El sistema operativo Android es una pila de componentes de software que se divide aproximadamente en cinco secciones y cuatro capas principales, como se muestra a continuación en el diagrama de arquitectura. Núcleo de Linux En la parte inferior de las capas, Linux-Linux……
- Android – Servicios ¿Qué es un servicio Android? Un servicio es un componente que se ejecuta en segundo plano para realizar operaciones a largo plazo sin tener que interactuar con el usuario y funciona incluso si la aplicación se destruye……
- Android – Entorno de instalación Estará encantado de saber que puede empezar a desarrollar aplicaciones Android en uno de los siguientes sistemas operativos: Microsoft Windows XP o posterior. Mac OS X versión 10.5.8 o posterior con chip Intel…….
- ¿Qué es Android? Android es un sistema operativo Linux y de código abierto para dispositivos móviles como teléfonos inteligentes y tabletas. Android fue desarrollado por la Open Handset Alliance, liderada por Google y otras empresas. Androide……
- Cómo tomar una captura de pantalla en su teléfono Android En ese entonces, para tomar una captura de pantalla en un teléfono Android, tenía que instalar las herramientas de desarrollo de Android. Hoy en día, se pueden tomar capturas de pantalla en teléfonos con Android 4.0 o….