在绘图中还有一种比较重要的可以设置画笔风格的属性叫做Shader,Shader被称为着色器或是渲染。
一、Shader简介
Shader被称为着色器或是渲染,Shader有几个直接子类:
BitmapShader : 主要用来渲染图像
LinearGradient :用来进行线性渲染
RadialGradient : 用来进行环形渲染
SweepGradient : 扫描渐变—围绕一个中心点扫描渐变就像电影里那种雷达扫描,用来梯度渲染。
ComposeShader : 组合渲染,可以和其他几个子类组合起来使用。
二、分类介绍
首先我们根据API来看一下上面四种不同的子类的渲染效果
1、BitmapShader (位图着色器)
BitmapShader(Bitmap bitmap, Shader.TileMode tileX, Shader.TileMode
参数介绍:Bitmap (位图)后面两个分别是X轴与Y轴的Mode形式
下面是Bipmapshader的三种Mode形式
CLAMP:如果渲染器超出原始边界范围,将复制边缘进行渲染(实际上是右下角的颜色)
MIRROR:横向和纵向的重复渲染器图片,交替镜像,即使图片不是很衔接。
REPEAT:横向和纵向的重复渲染器图片,平铺。
2、LinearGradient (线性渐变)
参数介绍:
x0/x1:线性渐变的起始(停止)X坐标
Y0/y1:线性渐变的起始(停止)X坐标
color0/color1:线性渐变的起始(停止)的颜色
title:模式就是我们BitmapShader中介绍的三种mode(CLAMP、MIRROR、REPEAT)
3、RadialGradient (环型渐变)
参数介绍:
centerX/Y:着色器开始渐变的中心坐标
radius:半径
centercolor:中心颜色
edagecolor:边缘颜色
tilemode:BitmapShader中的三种mode相同
4、SweepGradient (扫描渐变)
SweepGradient 颜色渐变方向非环形,而是以某点为圆心呈扇形扫过。
参数介绍:
cx,cy :着色器开始渐变的中心坐标,
color1,color0 或 colors: 指定渐变的颜色 ,对于使用多于两种颜色时,还可以通过positions 指定每种颜色的相对位置,positions 设为NULL时表示颜色均匀分布。
5、ComposeShader(组合渐变)
参数介绍:
Parameters
shaderA The colors from this shader are seen as the “dst” by the mode(画笔Xfermode的风格是dst模式则渲染器的颜色将为dst遮罩层)
shaderB The colors from this shader are seen as the “src” by the mode(画笔Xfermode的风格是src模式则渲染器的颜色将为Src层)