gpt4 book ai didi

android - Android 中漂亮的描边文字

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:51:49 29 4
gpt4 key购买 nike

我知道如何使用自定义 View (EditText 或 TextView)对文本进行描边,但我无法实现像这个漂亮的东西,这是使用 Photoshop 完成的。是的,它也有外部阴影。 Stroked Text in Photoshop

到目前为止我所做的是调整笔划宽度和笔划连接样式。但是,如果我增加笔画宽度,笔画就会出现在整个文本中。据我搜索,有一个名为 MagicTextView 的图书馆但它也无法给出上述结果。

更新:我根据@pskink 的建议进行了调整。现在可以了。但是我不能再拖了。如果我拖动那个 EditText,就会出现一些像这样的奇怪线条。 Weird line above text view

代码如下:

@Override public void onDraw(Canvas canvas) {
final int x = this.getLeft();
final int y = this.getBottom();

mText = this.getText().toString();

p.setStrokeWidth(30);
p.setStyle(Style.STROKE);
p.setStrokeJoin(Join.ROUND);
p.setColor(0xffffffff);

canvas.drawText(mText, x, y, p);

p.setStyle(Style.FILL);
p.setColor(0xff000000);

canvas.drawText(mText, x, y, p);
}

最佳答案

经过几个小时的调整,我已经修复了更新问题中所述的奇怪线路问题。我想我应该在这里发布作为答案。

@Override public void onDraw(Canvas canvas) {
mText = this.getText().toString();

p.setStyle(Style.STROKE);
p.setStrokeJoin(Join.ROUND);
p.setShadowLayer(10, 1, 1, 0xcfcccccc);

canvas.drawText(mText, 0, getLineHeight(), p);

p.clearShadowLayer();
p.setStrokeWidth(35);
p.setStrokeJoin(Join.ROUND);
p.setStyle(Style.STROKE);
p.setColor(0xffffffff);

canvas.drawText(mText, 0, getLineHeight(), p);

p.setStyle(Style.FILL);
p.setColor(0xff000000);

canvas.drawText(mText, 0, getLineHeight(), p);
canvas.translate(xPos, yPos);
}

xPos 和 yPos 是来自 ACTION_MOVE onTouch 事件的 x 和 y 值。我们需要为 Canvas 文本添加行高作为 Y。

关于android - Android 中漂亮的描边文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29506643/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com