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

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

  • 比如我们想要实现一个竖直方向上的渐变,如下
    LinearGradient的使用

  mLinearGradient = new LinearGradient(0, 0, 0, getMeasuredHeight(),
                new int[]{Color.RED, Color.WHITE, Color.BLUE}, new float[]{0f, 0.5f, 1f}, Shader.TileMode.CLAMP);
  • 如果要实现水平方向上的渐变,如下
    LinearGradient的使用
 mLinearGradient = new LinearGradient(0, 0, getMeasuredWidth(), 0,
                new int[]{Color.RED, Color.WHITE, Color.BLUE}, new float[]{0f, 0.5f, 1f}, Shader.TileMode.CLAMP);
  • 还有对角线渐变
    LinearGradient的使用
mLinearGradient = new LinearGradient(0, 0, getMeasuredWidth(), getMeasuredHeight(),
                new int[]{Color.RED, Color.WHITE, Color.BLUE}, new float[]{0f, 0.5f, 1f}, Shader.TileMode.CLAMP);

相关文章: