title: Drag and Drop Imageview
body: <p>I am trying to create a drag and drop imageview. I have used the same code as in this link <a href="http://www.tutorialspoint.com/android/android_drag_and_drop.htm" rel="nofollow">http://www.tutorialspoint.com/android/android_drag_and_drop.htm</a>. I can drag the image but while dropping, the imageviewbecomes invisible. Can someone help me?</p>
  
  <p>This is my java code.</p>
  
  <pre><code>package com.example.draganddropbutton;
  
  import android.app.Activity;
  import android.content.ClipData;
  import android.content.ClipDescription;
  import android.os.Bundle;
  import android.support.design.widget.FloatingActionButton;
  import android.support.design.widget.Snackbar;
  import android.support.v7.app.AppCompatActivity;
  import android.support.v7.widget.Toolbar;
  import android.util.Log;
  import android.view.DragEvent;
  import android.view.MotionEvent;
  import android.view.View;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.widget.ImageView;
  import android.widget.RelativeLayout;
  
  
  public class MainActivity extends Activity {
  
      ImageView img;
      String msg;
      private android.widget.RelativeLayout.LayoutParams layoutParams;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          img=(ImageView)findViewById(R.id.imageView);
  
          img.setOnLongClickListener(new View.OnLongClickListener() {
              @Override
              public boolean onLongClick(View v) {
                  ClipData.Item item = new ClipData.Item((CharSequence)v.getTag());
                  String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN};
  
                  ClipData dragData = new ClipData(v.getTag().toString(),mimeTypes, item);
                  View.DragShadowBuilder myShadow = new View.DragShadowBuilder(img);
  
                  v.startDrag(dragData,myShadow,null,0);
                  return true;
              }
          });
  
          img.setOnDragListener(new View.OnDragListener() {
              @Override
              public boolean onDrag(View v, DragEvent event) {
                  switch(event.getAction())
                  {
                      case DragEvent.ACTION_DRAG_STARTED:
                          layoutParams = (RelativeLayout.LayoutParams)v.getLayoutParams();
                          Log.d(msg, "Action is DragEvent.ACTION_DRAG_STARTED");
  
                          // Do nothing
                          break;
  
                      case DragEvent.ACTION_DRAG_ENTERED:
                          Log.d(msg, "Action is DragEvent.ACTION_DRAG_ENTERED");
                          int x_cord = (int) event.getX();
                          int y_cord = (int) event.getY();
                          break;
  
                      case DragEvent.ACTION_DRAG_EXITED :
                          Log.d(msg, "Action is DragEvent.ACTION_DRAG_EXITED");
                          x_cord = (int) event.getX();
                          y_cord = (int) event.getY();
                          layoutParams.leftMargin = x_cord;
                          layoutParams.topMargin = y_cord;
                          v.setLayoutParams(layoutParams);
                          break;
  
                      case DragEvent.ACTION_DRAG_LOCATION  :
                          Log.d(msg, "Action is DragEvent.ACTION_DRAG_LOCATION");
                          x_cord = (int) event.getX();
                          y_cord = (int) event.getY();
                          break;
  
                      case DragEvent.ACTION_DRAG_ENDED   :
                          Log.d(msg, "Action is DragEvent.ACTION_DRAG_ENDED");
  
                          // Do nothing
                          break;
  
                      case DragEvent.ACTION_DROP:
                          Log.d(msg, "ACTION_DROP event");
  
                          // Do nothing
                          break;
                      default: break;
                  }
                  return true;
              }
          });
  
          img.setOnTouchListener(new View.OnTouchListener() {
              @Override
              public boolean onTouch(View v, MotionEvent event) {
                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                      ClipData data = ClipData.newPlainText("", "");
                      View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(img);
  
                      img.startDrag(data, shadowBuilder, img, 0);
                      img.setVisibility(View.INVISIBLE);
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
          });
  
  
  
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.menu_main, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          // Handle action bar item clicks here. The action bar will
          // automatically handle clicks on the Home/Up button, so long
          // as you specify a parent activity in AndroidManifest.xml.
          int id = item.getItemId();
  
          //noinspection SimplifiableIfStatement
          if (id == R.id.action_settings) {
              return true;
          }
  
          return super.onOptionsItemSelected(item);
      }
  }
  </code></pre>
  
  <p>This is my xml.</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fitsSystemWindows="true"
  tools:context="com.example.edusys.draganddropbutton.MainActivity"&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Drag and Drop Example"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" /&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="30dp"
      android:textColor="#ff14be3c" /&gt;&gt;
  
  &lt;ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@mipmap/ic_launcher"
      android:layout_below="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2" /&gt;
  </code></pre>
  
  <p></p>