LinearGradient类来实现图片的渐变效果

最近学习了一下3D相册的代码,发现LinearGradient类可以来实现图片倒影的渐变效果(图片是网上找的,仅供参考),下面记录一下该用法:


 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表示所有的颜色按顺序均匀的分布

posted @ 2012-05-11 10:29  andriod2012  阅读(406)  评论(0编辑  收藏  举报