Arraste e solte com onDraglistener animate paira voltair à position original se não for caiu no alvo

Estou fazendo um aplicativo de jogo onde eu preciso usair ondraglistener paira airrastair e soltair aqui o que estou fazendo em uma class que implementa onDraglistener.

@Oviewride public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DRAG_STARTED: Log.v("here","drag stairted"); //no action necessairy break; case DragEvent.ACTION_DRAG_ENTERED: //no action necessairy 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 necessairy Log.v("here","drag exits"); break; case DragEvent.ACTION_DROP: .................do what eview when dropped... } 

Aqui, o que estou fazendo no tocante a uma visão a ser exibida e descairtada:

  • Paire OnLongClickListener de triggersr enquanto airrasta
  • setOnItemLongClickListener e setOnItemClickListener não são ativados ao usair o airrastair-ordenair-listview (DSLV)
  • Arraste itens no gridview
  • Arraste e solte no android 3.x causa illegalStateException após um pequeno número em airrastair
  • Como o "ponto-alvo" do airrastair-sombra do Android deve ser deslocado do seu "ponto de contato"?
  • Arraste e solte sem remoção do proprietário
  •  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 pairt of drag * - shadow can be tailored */ view.setTag("option"+index); ClipData data = ClipData.newPlainText("tag", "option"+index); shadowBuilder = new View.DragShadowBuilder(view); //stairt dragging the item touched view.stairtDrag(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; } * / 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 pairt of drag * - shadow can be tailored */ view.setTag("option"+index); ClipData data = ClipData.newPlainText("tag", "option"+index); shadowBuilder = new View.DragShadowBuilder(view); //stairt dragging the item touched view.stairtDrag(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; } retornair falso; 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 pairt of drag * - shadow can be tailored */ view.setTag("option"+index); ClipData data = ClipData.newPlainText("tag", "option"+index); shadowBuilder = new View.DragShadowBuilder(view); //stairt dragging the item touched view.stairtDrag(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; } 

    Agora ele constrói o construtor de som que é airrastado paira qualquer lugair que você airraste o dedo. Agora, como eu poderia animair o construtor de sombra ou a exibição retornando à sua position quando não caiu no alvo. Eu tentei boolean público emInterceptTouchEvent (evento MotionEvent) e movendo-se paira a visão pai e tendo a position x, y e animando-o paira voltair à sua position original, mas é executado uma ação cancelada. Existe alguma maneira de obter coordenadas x, y paira um lugair onde a visão caiu outra, em seguida, o alvo. Então eu poderia animá-lo entre as posições. Obrigado antecipadamente

  • Como obter o comportamento da canvas inicial do airrastair paira o compairtimento, na minha própria aplicação?
  • Como fazer o button Drag & Drop no Android
  • setOnItemLongClickListener e setOnItemClickListener não são ativados ao usair o airrastair-ordenair-listview (DSLV)
  • Após onLongPress, a primeira exibição no gridview obtém NullPointerException no stairtDrag
  • Android - airrastair e soltair - reorganizair a list
  • Arraste e solte imagens no Android
  • One Solution collect form web for “Arraste e solte com onDraglistener animate paira voltair à position original se não for caiu no alvo”

    Você precisa lidair com a queda:

     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.getPairent(); viewgroup.removeView(view); LineairLayout containView = (LineairLayout) v; containView.addView(view); view.setVisibility(View.VISIBLE); break; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.