36

Given this code to draw a line:

Paint p;

p = new Paint(Paint.ANTI_ALIAS_FLAG);
p.setColor(android.graphics.Color.WHITE);
p.setStyle(Paint.Style.FILL);
p.setStrokeWidth(21);

canvas.drawLine(0,50,100,50,p);

there are 3 possible stroke-drawing strategies:

  • Inside: The line is painted in the rectangle (0,50,100,70)
  • Center: The line is painted in the rectangle (0,40,100,60)
  • Outside: The line is painted in the rectangle (0,30,100,50)

In practice it appears that default behavior follows the Center strategy. Is it possible to modify a paint to produce results corresponding to one of the other strategies?

stkent
  • 19,772
  • 14
  • 85
  • 111
ilomambo
  • 8,290
  • 12
  • 57
  • 106
  • what is your actual requirement? what you exact need? – Shreyash Mahajan Aug 23 '13 at 04:32
  • @iDroidExplorer, Well, I adapted my code to reality. But if you are curious, I was drawing the court of a game I was designing, and I needed pixel accuracy control to draw lines. – ilomambo Aug 27 '13 at 05:20

1 Answers1

25

No you can't; the stroke is always centered. The only things you can control are:

You must manually account for the stroke width when defining your drawing paths.

stkent
  • 19,772
  • 14
  • 85
  • 111
avianey
  • 5,545
  • 3
  • 37
  • 60