Reputation:
I am using canvas.drawLine
to draw some line in android but the lines are too sharp but i need a curved edges
Here the 1 is what i have and 2 is what i want to achieve, means a line with curved edges rather than straight edges
How can I achieve that ??
EDIT 2:
I am trying to use the Canvas object to to draw a line. but the lines have a sharp edge, I need a rounded off edge I am using the Paint object
mPaint = new Paint();
mPaint.setColor(Color.BLACK)
Any help would be appreciated great.
Upvotes: 19
Views: 14099
Reputation: 11
path = new Path();
path.moveTo(50, 50);
path.lineTo(50, 500);
path.lineTo(200, 500);
path.lineTo(200, 300);
path.lineTo(350, 300);
float radius = 50.0f;
CornerPathEffect cornerPathEffect = new CornerPathEffect(radius);
paint.setPathEffect(cornerPathEffect);
// this setPathEffect will set the curve edges for every new joining
canvas.drawPath(path, paint);
Go through this link , This Link will teach you proper usages
Upvotes: 0
Reputation: 165
this is for kotlin Jetpack Compose users : use the cap attribute
Canvas(modifier = Modifier.fillMaxSize()) {
// Fetching width and height for
// setting start x and end y
val canvasHeight = size.height
// drawing a line between start(x,y) and end(x,y)
drawLine(
start = Offset(x = 0f, y = 0.12f * canvasHeight),
end = Offset(x = 0f, y =0.5f *canvasHeight),
color = Color.Red,
strokeWidth = 10F,
cap = StrokeCap.Round
)
}
Upvotes: 0
Reputation: 1895
Use the Paint.setStrokeCap()
method. You need Paint.Cap.ROUND
. The default one is Paint.Cap.BUTT
. There is a similar Path
property that is called path join. It determines how to draw the parts of the path where it's constituent segments join. To set it use Path.setPathJoin()
. You might need it in the future.
Good luck.
Upvotes: 47