Tuesday, February 14, 2012

draw rectangle on a picture from pixels coordinates

with the following code i can draw a rectangle on my bitmap image.

Paint paint = new Paint();
Canvas canvas = new Canvas(mBitmap);
canvas.drawRect(200, 100, 200, 100, paint);

i've read that the values given in canvas.drawRect(200, 100, 200, 100, paint); represent respectively left x, top y, right x and bottom y. So my questions are :

  • are those values in pixels? ppi or what??

  • how can i draw a rectangle on my image if i have only the coordinates of each corners in pixels as shown on the picture below ? assuming that i have A (x, y) B (x, y), C(x, y) and D(x, y) with x and y expressed in pixels from the axes of the picture below. NB: i don't have control on A,B,C,D they are given to me from a web service

    rectangle i want to draw

1 comment:

  1. I don't think you have a problem here, you would just do this:

    canvas.drawRect(a.getX(), a.getY(), c.getX(), c.getY(), paint);

    Yes the values are in pixels however your origin (0,0) is the top left of the canvas normally. Y value becomes more positive as you move down the canvas.