Arrastrar y soltar con onDraglistener animar para volver a la posición original si no se deja caer en el objetivo

Estoy haciendo una aplicación de juego donde necesito utilizar ondraglistener para arrastrar y soltar aquí lo que estoy haciendo en una clase que implementa onDraglistener.

@Override public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DRAG_STARTED: Log.v("here","drag started"); //no action necessary break; case DragEvent.ACTION_DRAG_ENTERED: //no action necessary Log.v("here","drag enteres"); break; case DragEvent.ACTION_DRAG_LOCATION: int mCurX = (int) event.getX(); int mCurY = (int) event.getY(); Log.v("Cur(X, Y) : " ,"here ::" + mCurX + ", " + mCurY ); break; case DragEvent.ACTION_DRAG_EXITED: //no action necessary Log.v("here","drag exits"); break; case DragEvent.ACTION_DROP: .................do what ever when dropped... } 

Aquí lo que estoy haciendo en touchlistener de una vista para ser arrastrado y cayó:

 public boolean onTouch(View view, MotionEvent motionEvent) { if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { /* * Drag details: we only need default behavior * - clip data could be set to pass data as part of drag * - shadow can be tailored */ view.setTag("option"+index); ClipData data = ClipData.newPlainText("tag", "option"+index); shadowBuilder = new View.DragShadowBuilder(view); //start dragging the item touched view.startDrag(data, shadowBuilder, view, 0); offsetX = (int)view.getX();//(int)motionEvent.getX(); offsetY = (int)view.getY();//motionEvent.getY(); Log.v("here","it is ::" + (int)motionEvent.getX() + " , "+(int)motionEvent.getY()); return false; } 

Ahora construye el constructor de sombras que se arrastran a cualquier lugar que arrastre dedo. Ahora cómo podría animar el constructor de la sombra o la opinión que vuelve a su posición cuando no caído a la blanco. Intenté boolean público onInterceptTouchEvent (evento de MotionEvent) y moviéndose a la vista del padre y tomando la posición de x, y animándola para volver a su posición original pero consigue la acción cancelada. ¿Hay alguna forma de obtener x, y coordenadas a un lugar de la vista se redujo a continuación, el objetivo. Entonces sería capaz de animarlo entre las posiciones. Gracias de antemano

Usted necesita manejar la gota:

 switch (event.getAction()) { case DragEvent.ACTION_DRAG_ENTERED: //break here was removed in purpose so you can see the shadow and the element is still at its initial place. case DragEvent.ACTION_DROP: View view = (View) event.getLocalState(); if (prioritiesList.contains(v)) { ViewGroup viewgroup = (ViewGroup) view.getParent(); viewgroup.removeView(view); LinearLayout containView = (LinearLayout) v; containView.addView(view); view.setVisibility(View.VISIBLE); break; } 
  • Cómo crear una sombra de arrastre personalizada?
  • OnDragListener - ¿hay alguna biblioteca de compatibilidad para niveles de Android <11?
  • Android - Restringir arrastrar y soltar a un cuadro delimitador
  • Drag'n'Drop ConcurentModificationException
  • Arrastrar y soltar sin eliminar del propietario
  • ¿Por qué estoy recibiendo este error "recurso esperado de tipo raw" en Android Studio?
  • Leer WCF REST fecha de android
  • ¿Cómo se puede desplazar un "punto de destino" de Android drag-shadow de su "punto de contacto"?
  • Cómo arrastrar el TextView al destino correcto otro TextView
  • Android obtiene tiempo en este formato `aaaa-mm-dd hh: mm: ss`
  • ¿Cómo obtener la vista mientras arrastrar y soltar en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.