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