给textView设置文字渐变色
Posted 心脏dance
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给textView设置文字渐变色相关的知识,希望对你有一定的参考价值。
利用shader来实现
viewBinding.title:这是一个textView
上代码:
viewBinding.title.post
// 设置字体渐变
val shader = LinearGradient(
0F,
0F,
0F,
viewBinding.title.measuredHeight.toFloat(),
ContextCompat.getColor(context, R.color.start_color),
ContextCompat.getColor(context, R.color.end_color),
Shader.TileMode.CLAMP
)
viewBinding.title.paint.shader = shader
viewBinding.title.text = "hello world"
解释:
1. post 的原因是为了拿到 title 这个 textView 的高
2. 前 4 个参数为描述位置,我这里描述的是从上到下
简单写一下:
从上到下:x=x1 y改变
从左到右:x改变 y=y1
看到这两种类型大家应该总结出规律来了吧。
3. 第 5 个参数为开始的颜色,第 6 个参数为结束的颜色
4. 最后一个参数为渐变的效果,我这里选择的就是从开始的颜色渐变到结束的颜色,这里不再赘述,感兴趣的可以去搜下各种渐变的效果
特别注意:
一定要先设置shader,再设置字。如果先设置的字或者在xml里面设置的字,就需要设置完shader之后调用一下触发重新绘制的代码。
viewBinding.title.invalidate()
以上是关于给textView设置文字渐变色的主要内容,如果未能解决你的问题,请参考以下文章
Android之UI--重绘EditText以及实现Button的渐变色