Wie kann ich per Drag & Drop mehrere Bildansichten über andere Imageviews android

Ich bin neu bei Android. Der aktuelle Code kann per Drag & Drop mehrere Bildansichten auf einem einzigen ImageView, aber ich bin nicht in der Lage, sie auf mehrere Bildansichten fallen. Bitte helfen Sie wie in wie kann ich meinen Code oder einen anderen vorhandenen Code ändern.

MainActivity.java

package nfletters; import android.app.Activity; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; import android.widget.RelativeLayout; public class MainActivity extends Activity implements OnTouchListener { /** Called when the activity is first created. */ private View selected_item = null; private int offset_x = 0; private int offset_y = 0; Boolean touchFlag=false; boolean dropFlag=false; LayoutParams imageParams; ImageView imageDrop,image1,image2,image3,image4; int crashX,crashY; Drawable dropDrawable,selectDrawable; Rect dropRect,selectRect; int topy,leftX,rightX,bottomY; int dropArray[]; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); ViewGroup container = (ViewGroup) findViewById(R.id.container); imageDrop=(ImageView) findViewById(R.id.ImgDrop); image1=(ImageView) findViewById(R.id.img1); image2=(ImageView) findViewById(R.id.img2); image3=(ImageView) findViewById(R.id.img3); image4=(ImageView) findViewById(R.id.img4); container.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if(touchFlag==true) { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN : topy=imageDrop.getTop(); leftX=imageDrop.getLeft(); rightX=imageDrop.getRight(); bottomY=imageDrop.getBottom(); //opRect. break; case MotionEvent.ACTION_MOVE: crashX=(int) event.getX(); crashY=(int) event.getY(); int x = (int) event.getX() - offset_x; int y = (int) event.getY()- offset_y; int w = getWindowManager().getDefaultDisplay().getWidth() - 50; int h = getWindowManager().getDefaultDisplay().getHeight() - 10; if (x > w) x = w; if (y > h) y = h; RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(new ViewGroup.MarginLayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT)); lp.setMargins(x, y, 0, 0); //Drop Image Here if(crashX > leftX && crashX < rightX && crashY > topy && crashY < bottomY ) { Drawable temp=selected_item.getBackground(); imageDrop.setBackgroundDrawable(temp); imageDrop.bringToFront(); dropFlag=true; selected_item.setVisibility(View.INVISIBLE); } //Drop Image Here selected_item.setLayoutParams(lp); break; case MotionEvent.ACTION_UP: // touchFlag=false; if(dropFlag==true) { dropFlag=false; } else { selected_item.setLayoutParams(imageParams); } break; default: break; } }else { System.err.println("Display Else Part ::->"+touchFlag); } return true; } }); image1.setOnTouchListener(this); image2.setOnTouchListener(this); image3.setOnTouchListener(this); image4.setOnTouchListener(this); } public boolean onTouch(View v, MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: touchFlag=true; offset_x = (int) event.getX(); offset_y = (int) event.getY(); selected_item = v; imageParams=v.getLayoutParams(); break; case MotionEvent.ACTION_UP: selected_item=null; touchFlag=false; break; default: break; } return false; } } 

Activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/ImgDrop" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="#FFF123" /> <ImageView android:id="@+id/img4" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="75dp" android:layout_marginTop="61dp" android:background="@drawable/ic_launcher" /> <ImageView android:id="@+id/img3" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignTop="@+id/img4" android:layout_toRightOf="@+id/ImgDrop" android:background="@drawable/ic_launcher" /> <ImageView android:id="@+id/img2" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignRight="@+id/ImgDrop" android:layout_alignTop="@+id/img3" android:layout_marginRight="23dp" android:background="@drawable/ic_launcher" /> <ImageView android:id="@+id/img1" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignTop="@+id/img2" android:layout_marginRight="40dp" android:layout_toLeftOf="@+id/img2" android:background="@drawable/ic_launcher" /> 

  • In onTouchEvent funktioniert ACTION_UP nicht
  • OnTouchevent () vs onTouch ()
  • View.onTouchEvent registriert nur ACTION_DOWN-Ereignis
  • In EditText, Popup ein Dialog, wenn Sie auf bestimmte Untermenge von Text klicken
  • Kann keine Koordinaten von touchevents in Javascript auf Android-Geräten
  • Identifizieren Sie Triple Tap auf benutzerdefinierte Ansicht
  • Entfernen von Fragment durch Anklicken / Berühren von außen:
  • VelocityTracker geben zufällige scheinbare Ergebnisse
  • One Solution collect form web for “Wie kann ich per Drag & Drop mehrere Bildansichten über andere Imageviews android”

    Drag & Drop Mit dem Drag & Drop-Framework von Android können Sie Ihren Benutzern erlauben, Daten von einer Ansicht zur anderen zu verschieben. Sehen Sie sich das aktuelle Layout mit einer grafischen Drag & Drop-Geste an. Das Framework enthält eine Drag-Event-Klasse, Drag-Listener und Helper-Methoden und Klassen.

    Obwohl das Framework primär für die Datenbewegung ausgelegt ist, können Sie es für andere UI-Aktionen nutzen. Zum Beispiel könnten Sie eine App erstellen, die Farben mischt, wenn der Benutzer ein Farbsymbol über ein anderes Symbol zieht. Der Rest dieses Themas beschreibt jedoch den Rahmen für die Datenbewegung. Link siehe

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.