Android Paint stroke width positioning

android, drawing, paint, stroke

Solution

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

- stroke miter

- stroke cap

- stroke join

- stroke width

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

Problem

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?

Original source