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();
paint.setStyle(Style.STROKE);
paint.setColor(Color.BLUE);
publishProgress(80);
Canvas canvas = new Canvas(mBitmap);
publishProgress(85);
canvas.drawRect(200, 100, 200, 100, paint);
bitmap.recycle();
channel.close();



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.

    ReplyDelete