在Android中绘制具有弯曲边缘的线

luaexgnf  于 2023-06-04  发布在  Android
关注(0)|答案(4)|浏览(192)

我正在使用canvas.drawLine在android中绘制一些线条,但线条太尖锐,但我需要一个弯曲的边缘

这里的1是我所拥有的,2是我想要达到的,意思是一条曲线边而不是直线边
我该如何做到这一点??

编辑2:

我正在尝试使用Canvas对象来绘制一条线。但是线有一个尖锐的边缘,我需要一个圆滑的边缘,我正在使用油漆对象

mPaint = new Paint();
mPaint.setColor(Color.BLACK)

任何帮助将不胜感激。

xyhw6mcr

xyhw6mcr1#

使用Paint.setStrokeCap()方法您需要Paint.Cap.ROUND。默认值为Paint.Cap.BUTT。有一个类似的Path属性,称为路径连接。它决定如何绘制路径的组成部分的部分。使用Path.setPathJoin()进行设置。你将来可能需要它。祝你好运

xoefb8l8

xoefb8l82#

您可以在下面使用

pitchPaint.setStrokeCap(Paint.Cap.ROUND)
m1m5dgzv

m1m5dgzv3#

这是针对KotlinJetpack Compose用户的:使用cap属性

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

oxosxuxt

oxosxuxt4#

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

通过此链接,This Link will teach you proper usages

相关问题