给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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心脏dance

如果解决了您的疑惑,谢谢打赏呦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值