实现TextView文本颜色渐变的骚操作

本文介绍了在Android中实现TextView文本颜色渐变的三种方法,包括使用LinearGradient、自定义TextView以及通过Span实现部分文本渐变。详细讲解了每种方法的实现原理和适用场景,提供了相关代码示例。
摘要由CSDN通过智能技术生成

实现TextView文本颜色渐变的骚操作

前言

最近开发过程中要实现文本颜色渐变的效果。什么,文本颜色也要渐变?虽然不乐意,但是也只能说好吧…

先来点最终效果图
在这里插入图片描述在这里插入图片描述

常规操作

常见的渐变做法有两种,原理其实都是一样的。都是创建一个 LinearGradient 对象,并将其设置到 TextView 的画笔中。

先来简单介绍下 LinearGradient

LinearGradient

Shader 子类,用于实现线性渐变的效果。常用的构造方法如下

public LinearGradient(float x0, 
                      float y0, 
                      float x1, 
                      float y1, 
                      int color0, 
                      int color1, 
                      Shader.TileMode tile)

参数说明

  • (x0, y0):渐变起始点坐标
  • (x1, y1):渐变结束点坐标
  • color0:渐变起始颜色
  • color1:渐变终止颜色
  • tile:填充模式
    • CLAMP:边缘拉伸。使用边缘颜色对区域外的范围进行填充
    • REPEAT:重复模式。在水平和垂直两个方向上重复填充
    • MIRROR:镜像模式。在水平和垂直两个方向上以镜像的方式重复填充,相邻图像间有间隙
做法一

继承 TextView,重写 onLayout 方法后设置 Shader

public class GradientTextView extends TextView {
   
	...
    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
   
        super.onLayout(changed, left, top, right, bottom);
        if (changed) {
   
            getPaint().setShader(new LinearGradient(0, 0, getWidth(
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值