Note that there are some explanatory texts on larger screens.

plurals
  1. POHow can i drag and drop multiple imageviews over other imageviews android
    primarykey
    data
    text
    <p>I am new to Android. The present code can drag and drop multiple Image Views on a single ImageView but I am not able to drop them on multiple Image Views. Kindly help as in how can I modify my code or any other existing code.</p> <p>MainActivity.java</p> <pre><code>package n.f.letters; 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 &gt; w) x = w; if (y &gt; 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 &gt; leftX &amp;&amp; crashX &lt; rightX &amp;&amp; crashY &gt; topy &amp;&amp; crashY &lt; 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 ::-&gt;"+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; } } </code></pre> <p>activity_main.xml</p> <pre><code>&lt;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" &gt; &lt;ImageView android:id="@+id/ImgDrop" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="#FFF123" /&gt; &lt;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" /&gt; &lt;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" /&gt; &lt;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" /&gt; &lt;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" /&gt; </code></pre> <p></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload