gpt4 book ai didi

java - 如何在 TextView Android 中将渐变设置为文本颜色以及在其周围添加描边?

转载 作者:行者123 更新时间:2023-12-04 23:40:54 24 4
gpt4 key购买 nike

我想将渐变设置为 textcolor,同时我希望文本在 TextView 中也有一个实心笔画。 .到目前为止,我已经实现的是文本只能显示渐变或笔画,不能同时显示两者。
我创建了一个带有扩展 TextView 的自定义类我正在使用以下方法:
使用它来绘制笔划:

paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(_strokeWidth);
setTextColor(_strokeColor);
这给了我这个结果:
enter image description here
使用以下代码添加渐变:
Shader textShader = new LinearGradient(0f, 0f, getWidth(), getTextSize(), gradientColorsArray, null, Shader.TileMode.CLAMP);
paint.setShader(textShader);
它给了我以下结果:
enter image description here
问题是当我结合上述两种方法时,笔画被绘制,但笔画的颜色与我给绘制对象的渐变相同。
以下是我想要达到的结果。如果有人可以指导我如何达到预期的结果,那就太好了。
enter image description here

最佳答案

所以在等待了4天多的时间和大量的研究之后,我终于能够成功实现预期的输出。
我犯的错误是在绘画对象上绘制笔触时,我将笔触颜色设置为 textcolor .我这次所做的是创建了一个 LinearGradient()对象并将其交给 paint.shader在设置 paintStyle(Paint.Style.Stroke) .

Paint paint = this.getPaint();
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5f);
paint.setShader(new LinearGradient(0f, 0f, getTextSize(), getTextSize(), mOutlineColor, mOutlineColor, Shader.TileMode.CLAMP));
onDraw() 中设置笔画后我的方法 CustomTextView上课,我调用 super.onDraw(canvas)然后我创建一个新的 LinearGradient()渐变颜色的对象如下:
 Paint paint = this.getPaint();
paint.setStyle(Paint.Style.FILL);
Shader linearShader = new LinearGradient(0f, 0f, getWidth(), getTextSize(), colors, null,
Shader.TileMode.CLAMP);
paint.setShader(linearShader);
最后调用 super.onDraw(canvas)再次,这给了我的 textview笔触和渐变文本颜色。

关于java - 如何在 TextView Android 中将渐变设置为文本颜色以及在其周围添加描边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70107023/

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