安卓TevtView字体渐变色设置

1.布局

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#666666"
    android:textSize="40sp" />

2.使用LinearGradient设置

LinearGradient有两个构造方法

a.LinearGradient(float x0, float y0, float x1, float y1, int colors[], float positions[], TileMode tile)
注:Android中计算x,y坐标都是以屏幕左上角为原点,向右为x+,向下为y+
第一个参数为线性起点的x坐标
第二个参数为线性起点的y坐标
第三个参数为线性终点的x坐标
第四个参数为线性终点的y坐标
(通过设置这四个值可以让渐变色从不同的位置开始,例如设置
0, 0, 0, textView.getMeasuredHeight()是从上往下的渐变色
第五个参数为实现渐变效果的颜色的组合
第六个参数为前面的颜色组合中的各颜色在渐变中占据的位置(比重),如果为空,则表示上述颜色的集合在渐变中均匀出现
第七个参数为渲染器平铺的模式,一共有三种
-CLAMP
重复最后一种颜色直到该View结束的地方
-REPEAT
着色器在水平或者垂直方向上对控件进行重复着色
-MIRROR
在水平方向或者垂直方向上以镜像的方式进行渲染,具有翻转的效果

b.public LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, TileMode tile)
注:int color0表示渐变起始颜色
int color1表示渐变终止颜色

3.使用

 
textView.setText("我是渐变色");
//测量textView的高度(必须先给textView设值,否则测量高度为0textView.measure(0, 0);
//从上到下的渐变色,两种颜色各占一半
LinearGradient shader_vertical = new LinearGradient(0, 0, 0, textView.getMeasuredHeight(),
        new int[]{Color.parseColor("#FF7B16"), Color.parseColor("#FE4836")},
        null, Shader.TileMode.CLAMP);
textView.getPaint().setShader(shader_vertical);

4.注意

必须在布局文件中设置android:textColor="#666666",需要在布局文件中给TextView一个初始字体色,否则显示颜色会偏浅,颜色出现偏差。(具体为什么暂时不知道,知道的大神可以评论留言)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值