LinearGradient和RadialGradient
LinearGradient
LinearGradient是用来实现线性渐变效果
1.此类是Shader的子类
LinearGradient extends Shader
主要是用对颜色的线性渐变效果
2.通过paint.setShader来设置渐变。
Paint mPaint = new Paint();
mPaint.setShader(linearGradient);
3.使用方法
LinearGradient linearGradient = new LinearGradient(
startX,startY,endX,endY,
new int[]{skyColor,skyColor,Color.BLACK},
new float[]{0,0.2f,1f}, Shader.TileMode.MIRROR
);
mPaint.setShader(linearGradient);
1. 第一个参数为线性起点的x坐标
2. 第二个参数为线性起点的y坐标
3. 第三个参数为线性终点的x坐标
4. 第四个参数为线性终点的y坐标
5. 第五个参数为实现渐变效果的颜色的组合
6. 第六个参数为前面的颜色组合中的各颜色在渐变中占据的位置(比重),
如果为空,则表示上述颜色的集合在渐变中均匀出现
7. 第七个参数为渲染器平铺的模式,一共有三种
-CLAMP
边缘拉伸
-REPEAT
在水平和垂直两个方向上重复,相邻图像没有间隙
-MIRROR
以镜像的方式在水平和垂直两个方向上重复,相邻图像有间隙
---注:Android中计算x,y坐标都是以屏幕左上角为原点,向右为x+,向下为y+
RadialGradient
RadialGradient是用来实现径向梯度渐变效果的
1.主要用法
RadialGradient radialGradient = new RadialGradient(
moonX, moonY, moonR,
new int[]{moonCenterColor, moonCenterColor,moonLightColor},
new float[]{0f, 0.3f, 1f},
Shader.TileMode.MIRROR );
mPaint.setShader(radialGradient);
--------- 用法和LinearGradient基本相同
1. 第一个参数为圆心的x坐标
2. 第二个参数为圆心的y坐标
3. 第三个参数为半径
4. 第四个参数为实现渐变效果的颜色的组合
5. 第五个参数为前面的颜色组合中的各颜色在渐变中占据的位置(比重),
如果为空,则表示上述颜色的集合在渐变中均匀出现
6. 第六个参数为渲染器平铺的模式,一共有三种
-CLAMP
边缘拉伸
-REPEAT
在水平和垂直两个方向上重复,相邻图像没有间隙
-MIRROR
以镜像的方式在水平和垂直两个方向上重复,相邻图像有间隙