怎样使用 LinearGradient,RadialGradient,SweepGradient,ComposeShader 实现如图的效果.

解决方案 »

  1.   

    图片都看不到 LinearGradient是实现线性渐变的效果,用法如下:
        Paint p=new Paint();  //生成画笔对象
       LinearGradient lg=new LinearGradien(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR);//生成  LinearGradient 对象
       参数一:为渐变起点坐标的x轴位置,   参数二 :为渐变起点坐标的y轴位置,   参数三 :为渐变终点坐标的x轴位置,   参数四 :为渐变终点坐标的y轴位置,   参数五 :平铺方式,这里设置为镜像
       因为LinearGradient是extends Shader类的,所以我们通过Paint的setShader方法来设置这个渐变,代码如下:      p.setShader(lg);
       canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()+ reflectionGap, p);另外:   它除了定义开始颜色和结束颜色以外还可以定义,多种颜色组成的分段渐变效果
         LinearGradient shader = new LinearGradient(startX, startY, endX, endY, new int[]{startColor, midleColor, endColor},new float[]{0 , 0.5f, 1.0f},                TileMode.MIRROR);
           其中参数new int[]{startColor, midleColor, endColor}是参与渐变效果的颜色集合,
           其中参数new float[]{0 , 0.5f, 1.0f}是定义每个颜色处于的渐变相对位置,
           这个参数可以为null,如果为null表示所有的颜色按顺序均匀的分布
      

  2.   

    图片
    http://my.csdn.net/my/album/detail/1308476