17
Oscar Rubén Ramírez Hernández Drag/Drop Android (Arrastrar y Soltar)

Drag android

Embed Size (px)

DESCRIPTION

Descripción, manejo y funcionalidad del Drag y el Drop en android.

Citation preview

Page 1: Drag android

Oscar Rubén

Ramírez Hernández

Drag/Drop Android(Arrastrar y Soltar)

Page 2: Drag android

¿Para que sirve?

• Con el framework drag/drop de android puede permitir a sus usuarios mover los datos de una vista a otra Vista en el layout actual usando una técnica gráfica de arrastrar y soltar.

• El framework incluye una clase de evento de arrastre, oyentes de arrastre, y clases y métodos de ayuda.

Page 3: Drag android

• Aunque el framework es diseñado principalmente para el movimiento de datos, se puede utilizar para otras acciones de interfaz de usuario.

• Por ejemplo, se podría crear una aplicación que mezcla los colores cuando el usuario arrastra un icono de color sobre otro icono.

Page 4: Drag android

Información general

• Un drag y drop inicia la operación cuando el usuario realiza un gesto que reconoce como una señal para empezar a arrastrar datos.

• En respuesta, la aplicación le indica al sistema que el arrastre está empezando.

• El sistema vuelve a llamar a su solicitud para obtener una representación de los datos que se arrastran.

Page 5: Drag android

• Como el dedo del usuario se mueve esta representación (una "sombra de arrastre") sobre el diseño actual, el sistema envía los eventos de arrastre a los objetos detectores de eventos de arrastrar y métodos de devolución de llamada de eventos de arrastrar asociado a la vista objetos en el diseño.

• Una vez que el usuario libera la sombra de arrastre, el sistema finaliza la operación de arrastre.

Page 6: Drag android

El proceso Drag/Drop

Hay básicamente cuatro pasos o estados en el proceso de arrastrar y soltar:

Started: Este evento se produce cuando se inicia arrastrando un elemento de un diseño, la aplicación llama al método startDrag () para indicar al sistema que va a iniciar un drag.

  Los argumentos dentro método startDrag () proporcionan los datos a ser arrastrados, los metadatos de estos datos, y una devolución de llamada para dibujar la sombra de arrastre.

Page 7: Drag android

Continuing: El usuario continúa el arrastre. El sistema envía la acción ACTION_DRAG_ENTERED seguida de la acción ACTION_DRAG_LOCATION al detector de eventos drag registrada para la vista, donde el punto de arrastre entra.

El oyente puede optar por modificar la apariencia del objeto en respuesta al evento o puede reaccionar, poniendo de relieve su Vista.

El detector de eventos de arrastrar recibe una acción ACTION_DRAG_EXITED vez que el usuario se ha movido a la sombra de arrastrar fuera del cuadro delimitador de la Vista.

Page 8: Drag android

Dropped: El usuario suelta el elemento arrastrado dentro de la caja circundante de un Vista.El sistema envía la vista del objeto oyente a un evento de arrastre con el tipo de acción ACTION_DROP.

Ended: Sólo después de que el tipo de acción ACTION_DROP, el sistema envía un evento de arrastre con el tipo de acción ACTION_DRAG_ENDED para indicar que la operación de arrastre ha terminado.

Page 9: Drag android

El DragEvent representa un evento que se envía por el sistema en varias ocasiones durante una operación de arrastrar y soltar. Esta clase proporciona unos Constantes y métodos importantes que usamos durante el Drag/Drop proceso.

La Clase DragEvent

Page 10: Drag android

Constante Descripción

ACTION_DRAG_STARTED Señala el comienzo de una operación de arrastrar y soltar.

ACTION_DRAG_ENTERED Señala una vista que el punto de arrastre ha entrado en el cuadro de límite de la vista.

ACTION_DRAG_LOCATION 

Se envía a una vista después del ACTION_DRAG_ENTERED si la sombra de arrastre se encuentra todavía dentro del cuadro delimitador de la vista del objeto.

ACTION_DRAG_EXITED Señales de que el usuario ha movido la sombra de arrastre fuera del cuadro delimitador de la Vista

ACTION_DROP Señala una vista que el usuario ha publicado la sombra de arrastre, y el punto de arrastre está dentro del cuadro de límite de la Vista.

ACTION_DRAG_ENDED Señala una vista que la operación de arrastrar y soltar ha concluido.

Page 11: Drag android

Métodos Descripción

int getAction()  Inspecciona el valor de acción de este evento

ClipData getClipData() Devuelve el objeto ClipData enviado al sistema como parte de la llamada a startDrag ()

ClipDescription getClipDescription() Devuelve el objeto ClipDescription contenida en el ClipData.

boolean getResult() Devuelve una indicación del resultado de la operación de arrastrar y soltar.

float getX() Obtiene la coordenada X del punto de arrastre.

float getY()  Obtiene la coordenada Y del punto de arrastre.

String toString() Devuelve una representación de cadena del objeto DragEvent.

Page 12: Drag android

Escuchar un en evento DragSi deseas cualquiera de sus vistas dentro de un layout debes responder al evento de arrastre, entonces su vista debe implementar View.OnDragListener o configurar el método de devolución de llamada onDragEvent(DragEvent).

Cuándo el sistema llama al método u oyente, este pasa al objeto DragEvent.

Page 13: Drag android

Usted puede tener tanto un oyente y un método de devolución de llamada para el objeto vista. Si esto ocurre, el sistema llama primero el oyente y define entonces de devolución de llamada mientras escucha devuelve un verdadero.

La combinación del método onDragEvent (DragEvent) y View.OnDragListener es análoga a la combinación de la onTouchEvent () y View.OnTouchListener utilizado con eventos táctiles en versiones antiguas de Android.

Page 14: Drag android

Iniciando un evento de arrastre

Se comienza con la creación de un ClipData y ClipData.Item para que los datos sean movidos. Como parte del objeto ClipData, los metadatos de suministro que se almacena en un objeto dentro de la ClipDescription con un ClipData.

Para una operación de arrastre que no representa el movimiento de datos, es posible que desee utilizar nulo en lugar de un objeto real.

Page 15: Drag android

Por siguiente puedes extender View.DragShadowBuilder para crear una sombra de arrastre para arrastrar la vista o simplemente puedes usar View.DragShadowBuilder (View) para crear una sombra de arrastre por defecto que es del mismo tamaño que la vista del argumento pasado a la misma, con el punto de contacto centrada en la sombra de arrastre.

Page 16: Drag android
Page 17: Drag android