LinearGradient的使用

LinearGradient作为Shade的子类,被经常用作于绘制颜色线性渐变的效果。而且它的用法也很简单,主要是作为paint.setShader()中的参数。所有大致介绍一下构造函数的用法就可以清楚LinearGradient的使用了。构造方法如下:


这里写图片描述

  • x0,表示颜色的起始点的x值
  • y0,表示颜色起始点的y值
  • x1,表示颜色的终点的X值
  • y1,表示颜色终点的y值
  • colors,表示颜色数组,在数组中存放需要进行渐变的颜色
  • posiitions,颜色的偏移量,表示颜色的位置。如果为null,表示为现行渐变,等同于new float[]{0f, 0.5f, 1f}
  • tile,TileMode平铺方式,上篇已经介绍,不再赘述

    有一点需要注意,LinearGradient绘制的是一条线段,起点和终点,颜色也是这条线段上的渐变,如果想扩散到这条线外部的其他部分,是通过TileMode来实现的。

  • 比如我们想要实现一个竖直方向上的渐变,如下
    这里写图片描述

  mLinearGradient = new LinearGradient(0, 0, 0, getMeasuredHeight(),
                new int[]{Color.RED, Color.WHITE, Color.BLUE}, new float[]{0f, 0.5f, 1f}, Shader.TileMode.CLAMP);
  • 如果要实现水平方向上的渐变,如下
    这里写图片描述
 mLinearGradient = new LinearGradient(0, 0, getMeasuredWidth(), 0,
                new int[]{Color.RED, Color.WHITE, Color.BLUE}, new float[]{0f, 0.5f, 1f}, Shader.TileMode.CLAMP);
  • 还有对角线渐变
    这里写图片描述
mLinearGradient = new LinearGradient(0, 0, getMeasuredWidth(), getMeasuredHeight(),
                new int[]{Color.RED, Color.WHITE, Color.BLUE}, new float[]{0f, 0.5f, 1f}, Shader.TileMode.CLAMP);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值