Android:如何用圆角画线?

Mic*_*hal 1 android android-canvas

如何绘制带圆角的线/弧,如下图所示?我需要在Canvas.

在此处输入图片说明

nat*_*rio 5

我认为您可以通过绘制具有部分重叠的三条线来解决此问题:

  • 两条外线 Paint.Cap.ROUND
  • 一条内线 Paint.Cap.BUTT

假设您的输入数据是

float lineWidth = 20;
float lineRadius = 100;
float cornerRadius = 2;
Run Code Online (Sandbox Code Playgroud)

你按以下方式走,

float width, radius;
// Draw outer lines
paint.setStrokeCap(Paint.Cap.ROUND);
width = cornerRadius * 2;

// Draw inner
radius = lineRadius - lineWidth/2f + cornerRadius;
canvas.draw(...)

// Draw outer
radius = lineRadius + lineWidth/2f - cornerRadius;
canvas.draw(...)

// Draw center
paint.setStrokeCap(Paint.Cap.BUTT);
width = lineWidth - 2f*cornerRadius;
radius = lineRadius;
canvas.draw(...)
Run Code Online (Sandbox Code Playgroud)

您可能需要稍微改变中心线的弧角(它必须cornerRadius更长,在每一侧),但这很容易。