`
mmdev
  • 浏览: 12928671 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics