如何绘制具有不同笔触和填充颜色的文本?

2022-09-01 10:50:52

我想在我的应用中显示如下文本。我正在使用具有风格的类来实现这一点。但只有一种方法可用于设置颜色。PaintFILL_AND_STROKEsetColor()

如何设置不同的描边和填充颜色?

text with different stroke and fill colors


答案 1

在自定义文本视图内部(在 EditText 中不起作用):

@Override
public void onDraw(Canvas canvas)
{
    final ColorStateList textColor = getTextColors();

    TextPaint paint = this.getPaint();

    paint.setStyle(Style.STROKE);
    paint.setStrokeJoin(Join.ROUND);
    paint.setStrokeMiter(10);
    this.setTextColor(strokeColor);
    paint.setStrokeWidth(strokeWidth);

    super.onDraw(canvas);
    paint.setStyle(Style.FILL);

    setTextColor(textColor);
    super.onDraw(canvas);
}

答案 2

不要使用FILL_AND_STROKE。使用 FILL 绘制一次,然后更改颜色并使用 STROKE 进行绘制。

(这适用于矩形。我不确定STROKE是否适用于文本。你必须尝试一下并找出答案。


推荐