Android有关于文字颜色的渐变

先放张效果图镇楼

在这里插入图片描述

直接进入正题

实现文字的渐变效果其实很简单

LinearGradient linearGradient = new LinearGradient(0, 0, 0, textview.getHeight(), new int[]{Color.parseColor("#FF0000")
                , Color.parseColor("#FFFF00")}, new float[]{0, 1}, Shader.TileMode.CLAMP);
        textview.getPaint().setShader(linearGradient);

就这么简单 主要就是配置关键类LinearGradient

然后TextView getPaint().setShader()

实例化 LinearGradient

public LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, android.graphics.Shader.TileMode tile)
第一个参数为线性起点的x坐标
第二个参数为线性起点的y坐标
第三个参数为线性终点的x坐标
第四个参数为线性终点的y坐标
第五个参数为实现渐变效果的颜色的组合
第六个参数为前面的颜色组合中的各颜色在渐变中占据的位置
第七个参数为渲染器平铺的模式

第六个参数 比如float[] 有三个元素 {0,0.4f,1} 表示第一个颜色从0开始

渐变到0.4f(40%)的地方 (0.4f 处表示第二个颜色) 然后再渐变到1这个地方

(1 处表示第三个颜色)

第七个参数有三种模式

1.CLAMP
2.REPEAT(水平和垂直两个方向上重复,相邻图像没有间隙)
4.MIRROR(以镜像的方式在水平和垂直两个方向上重复,相邻图像有间隙)

第一二三四个参数 可以设置渐变为从左到右 从右到左 从上到下 从下到上 从左上到右下等

三种分别对应效果图的第二三四种情况

 LinearGradient linearGradient = new LinearGradient(0, 0, 0, tv0.getHeight(), new int[]{Color.parseColor("#FF0000")
                , Color.parseColor("#FFFF00")}, new float[]{0, 1}, Shader.TileMode.CLAMP);
        tv0.getPaint().setShader(linearGradient);
        
LinearGradient linearGradient = new LinearGradient(0, 0, tv1.getWidth(), 0, new int[]{Color.parseColor("#FF0000")
                , Color.parseColor("#000000"), Color.parseColor("#FFFF00")}, new float[]{0, 0.5f, 1}, Shader.TileMode.CLAMP);
        tv1.getPaint().setShader(linearGradient);
        
LinearGradient linearGradient = new LinearGradient(0, 0, tv2.getWidth(), tv2.getHeight(), new int[]{Color.parseColor("#FF0000")
                , Color.parseColor("#000000"), Color.parseColor("#FFFF00")}, new float[]{0, 0.5f, 1}, Shader.TileMode.CLAMP);
        tv2.getPaint().setShader(linearGradient);

渐变色经常会配合文字的阴影使用 这里做个笔记 以后好复制 顺便膜拜大佬

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值