gpt4 book ai didi

android - Android Jetpack Compose 中的文本渐变

转载 作者:行者123 更新时间:2023-12-02 12:01:06 25 4
gpt4 key购买 nike

不知道如何添加 渐变 到带有 的文本内影在 Jetpack Compose 中使用修饰符。
有这样的东西?有任何想法吗?
enter image description here

最佳答案

到目前为止,jetpack compose 不提供开箱即用的文本渐变和内部阴影。
因此需要自己绘制:
result image

@Composable
fun drawGradientText(name: String, modifier: Modifier = Modifier) {

val paint = Paint().asFrameworkPaint()

val gradientShader: Shader = LinearGradientShader(
from = Offset(0f, 0f),
to = Offset(0f, 400f),
listOf(Color.Blue, Color.Cyan)
)

Canvas(modifier.fillMaxSize()) {
paint.apply {
isAntiAlias = true
textSize = 400f
typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD)
style = android.graphics.Paint.Style.FILL
color = android.graphics.Color.parseColor("#cdcdcd")
xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OVER)
maskFilter = BlurMaskFilter(30f, Blur.NORMAL)
}
drawIntoCanvas { canvas ->
canvas.save()
canvas.nativeCanvas.translate(2f, 5f)
canvas.nativeCanvas.drawText(name, 0f, 400f, paint)
canvas.restore()
paint.shader = gradientShader
paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.CLEAR)
paint.maskFilter = null
canvas.nativeCanvas.drawText(name, 0f, 400f, paint)
canvas.nativeCanvas.translate(2f, 5f)
paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OVER)
paint.maskFilter = BlurMaskFilter(30f, Blur.NORMAL)
canvas.nativeCanvas.drawText(name, 0f, 400f, paint)
}
paint.reset()
}
}
您可以调整 PorterDuff 模式和偏移量以满足您的要求。

关于android - Android Jetpack Compose 中的文本渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64203208/

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