Skip to main content

Drag and drop image in android

Ever wonder how to drag and drop in android. Lets check how to drag and drop image in android.

MainActivity.java



package com.example.dragdrop;

import android.app.Activity;
import android.content.ClipData;
import android.content.ClipDescription;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.Log;
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.DragShadowBuilder;
import android.view.View.OnClickListener;
import android.view.View.OnDragListener;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.ImageView.ScaleType;
import android.widget.RelativeLayout;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class MainActivity extends Activity  {
 ImageView img_model, img_chain;
 private static final String IMAGEVIEW_TAG = "Android Logo";
 private android.widget.RelativeLayout.LayoutParams layoutParams;
 String msg;
 int windowwidth, windowheight;
 float x, y, dx, dy;
 Bitmap bMap;
 //SeekBar seek;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 
  img_chain = (ImageView) findViewById(R.id.img2);
  img_model = (ImageView) findViewById(R.id.img1);
  bMap = BitmapFactory
    .decodeResource(getResources(), R.drawable.chainsss);
 
  img_chain.setOnTouchListener(new OnTouchListener() {

   @Override
   public boolean onTouch(View v, MotionEvent event) {

    // TODO Auto-generated method stub
    layoutParams = (RelativeLayout.LayoutParams) img_chain
      .getLayoutParams();
    /*
     * switch(event.getActionMasked()) {
     */

    Matrix matrix = new Matrix();
    img_chain.setScaleType(ScaleType.MATRIX); // required
    matrix.postRotate((float) 30, 20, 50);

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN: {
     x = event.getX();// 2.3 not supported
     y = event.getY();// 2.3 not supported
     dx = x - img_chain.getX();// 2.3 not supported
     dy = y - img_chain.getY();// 2.3 not supported
    }

     return true;
    case MotionEvent.ACTION_MOVE: {
     img_chain.setX(event.getX() - dx);// 2.3 not supported
     img_chain.setY(event.getY() - dy);// 2.3 not supported

    }
     return true;
    case MotionEvent.ACTION_UP: {
     // your stuff
    }
     return true;
    }
    return false;

   }
  });
 }

}
activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.dragdrop.MainActivity" >
 <ImageView
            android:id="@+id/img1"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_gravity="center"
            android:src="@drawable/model" />
        <ImageView
            android:id="@+id/img2"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/chainsss"
            android:layout_gravity="center"
            android:layout_marginTop="60dp" /> 
</RelativeLayout>

Comments