给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 TextView 渐变色

自定义textview产生渐变色

Android之UI--重绘EditText以及实现Button的渐变色

canvas的measureText()方法

请求一段实现页面文字渐变色的HTML代码,小弟用过通过改变背景渐变色实现文字渐变色的CSS代码,一直未成功

在word中怎样将字体颜色变成渐变色?