18

I am using canvas.drawLine to draw some line in android but the lines are too sharp but i need a curved edges enter image description here

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.

Aniruddh Parihar
  • 3,072
  • 3
  • 21
  • 39

4 Answers4

45

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.

GareginSargsyan
  • 1,877
  • 15
  • 23
0

You can use below

pitchPaint.setStrokeCap(Paint.Cap.ROUND)
Aniruddh Parihar
  • 3,072
  • 3
  • 21
  • 39
Jithin Jude
  • 840
  • 14
  • 19
0

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
            )
        }

enter image description here

El farouk
  • 125
  • 5
0
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