title: How to make a shape dragable and re-sizable in android dynamically
body: <p>I am a newbie in android and i am making a simple app in which i select an image from the gallery, a rectangle is drawn on the image which the user can drag at any position on the image and re-size the rectangle dynamically.</p>
  
  <p>My code up-till now can load an image from the gallery and draw a rectangle on the image. But i don't know how to go about making the rectangle dragable dynamically.</p>
  
  <pre><code>public class MainActivity extends Activity   {
  private static int RESULT_LOAD_IMAGE = 1;
  
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      Button buttonLoadImage = (Button) findViewById(R.id.buttonLoadPicture);
      buttonLoadImage.setOnClickListener(new View.OnClickListener() {
  
          public void onClick(View arg0) {
  
              Intent i = new Intent(
                      Intent.ACTION_PICK,
                      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  
              startActivityForResult(i, RESULT_LOAD_IMAGE);
          }
      });
  }
  
  
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
  
      if (requestCode == RESULT_LOAD_IMAGE &amp;&amp; resultCode == RESULT_OK &amp;&amp; null != data) {
          Uri selectedImage = data.getData();
          String[] filePathColumn = { MediaStore.Images.Media.DATA };
  
          Cursor cursor = getContentResolver().query(selectedImage,
                  filePathColumn, null, null, null);
          cursor.moveToFirst();
  
          int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
          String picturePath = cursor.getString(columnIndex);
          cursor.close();
  
          ImageView imageView = (ImageView) findViewById(R.id.imgView);
          Bitmap bMap = BitmapFactory.decodeFile(picturePath);
  
          bMap = bMap.copy(Bitmap.Config.ARGB_8888 , true);
  
          float width = imageView.getWidth();
          float height = imageView.getHeight();
  
          Canvas canvas = new Canvas(bMap);
          Paint paint = new Paint();
          paint.setAntiAlias(true);
          paint.setStyle(Paint.Style.STROKE);
          paint.setStrokeWidth(4);  
          paint.setColor(Color.RED);
          canvas.drawRect(width/2+60, height/2-20, width/2-60, height/2+20, paint);
  
          imageView.setImageBitmap(bMap);
  
      }
  
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p><img src="https://i.stack.imgur.com/jv5lB.png" alt="Output"></p>
  
  <p>The output i want is something like in the above picture. The red rectangle can be resized and dragged by the user and then save the image. </p>