zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    化了妆的祝福 4
    桥牌感悟 2
    关于送礼
    东京disney sea流水账 1
    东京disney sea流水账 3
    晕倒的候任日本驻华大使
    一饮一啄
    就算神游 之二:行路 4
    关于送礼续
    桥牌感悟 3
  • 原文地址:https://www.cnblogs.com/summerpxy/p/13648317.html
Copyright © 2011-2022 走看看