### Paint API大致可以分4类
* 颜色
* 效果
* drawText()相关
* 初始化
## 1.颜色
1.直接设置颜色
* setColor(int color)// setColor()对应的get方法是getColor()
2.setARGB(int a,int r,int g,int b)
3.setShader(Shader shader)
* LinearGradient 线性渐变
> TileMode CLAMP/MIRROR(镜像模式)/REPEAT(重复模式)
* RadialGradient 辐射渐变
* SweepGradient 扫描渐变
* BitmapShader 图片操作
* ComposeShader 混合着色器
4.setColorFilter(ColorFilter color) 过滤
* LightingColorFilter 用来模拟简单的光照效果
* PorterDuffColorFilter
* ColorMatrixColorFilter 矩阵
5.setXfermode(Xfermode xfermode)
> Xfermode 指的是你要绘制的内容和 Canvas 的目标位置的内容应该怎样结合计算出最终的颜色。但通俗地说,其实就是要你以绘制的内容作为源图像,以 View 中已有的内容作为目标图像,选取一个 PorterDuff.Mode 作为绘制内容的颜色处理方案。
## 2.效果
1.setAntiAlias(boolean b) 抗锯齿
* 初始化时 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
2.setStyle(Paint.Style style) //填充 画线 填充且画线
3.线条形状 setStrokeWidth(float width)
4.setStrokeCap(Paint.Cap cap) 设置线头的形状
* 线头形状有三种:BUTT平头 ROUND圆头 SQUARE 方头
5.setStrokeJoin(Paint.Join join) 设置拐角形状
* MITER 尖角、 BEVEL 平角和 ROUND 圆角。默认为 MITER。
6.setStrokeMiter(float miter)
* 这个方法是对于 setStrokeJoin() 的一个补充,它用于设置 MITER 型拐角的延长线的最大值。所谓「延长线的最大值」
7.色彩优化
* setDither(boolean dither) 设置图像的抖动
* setFilterBitmap(boolean filter) 设置过滤
8.setPathEffect(PathEffect effect)
> 使用 PathEffect 来给图形的轮廓设置效果。对 Canvas 所有的图形绘制有效,也就是 drawLine() drawCircle() drawPath() 这些方法
9.CornerPathEffect // 把所有拐角变成圆角。
10.DiscretePathEffect
> DiscretePathEffect 具体的做法是,把绘制改为使用定长的线段来拼接,并且在拼接的时候对路径进行随机偏离。它的构造方法 DiscretePathEffect(float segmentLength, float deviation) 的两个参数中, segmentLength 是用来拼接的每个线段的长度, deviation 是偏离量。这两个值设置得不一样,显示效果也会不一样
* 把线条进行随机的偏离,让轮廓变得乱七八糟。乱七八糟的方式和程度由参数决定。
11.DashPathEffect //使用虚线来绘制线条。
* 颜色
* 效果
* drawText()相关
* 初始化
## 1.颜色
1.直接设置颜色
* setColor(int color)// setColor()对应的get方法是getColor()
2.setARGB(int a,int r,int g,int b)
3.setShader(Shader shader)
* LinearGradient 线性渐变
> TileMode CLAMP/MIRROR(镜像模式)/REPEAT(重复模式)
* RadialGradient 辐射渐变
* SweepGradient 扫描渐变
* BitmapShader 图片操作
* ComposeShader 混合着色器
4.setColorFilter(ColorFilter color) 过滤
* LightingColorFilter 用来模拟简单的光照效果
* PorterDuffColorFilter
* ColorMatrixColorFilter 矩阵
5.setXfermode(Xfermode xfermode)
> Xfermode 指的是你要绘制的内容和 Canvas 的目标位置的内容应该怎样结合计算出最终的颜色。但通俗地说,其实就是要你以绘制的内容作为源图像,以 View 中已有的内容作为目标图像,选取一个 PorterDuff.Mode 作为绘制内容的颜色处理方案。
## 2.效果
1.setAntiAlias(boolean b) 抗锯齿
* 初始化时 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
2.setStyle(Paint.Style style) //填充 画线 填充且画线
3.线条形状 setStrokeWidth(float width)
4.setStrokeCap(Paint.Cap cap) 设置线头的形状
* 线头形状有三种:BUTT平头 ROUND圆头 SQUARE 方头
5.setStrokeJoin(Paint.Join join) 设置拐角形状
* MITER 尖角、 BEVEL 平角和 ROUND 圆角。默认为 MITER。
6.setStrokeMiter(float miter)
* 这个方法是对于 setStrokeJoin() 的一个补充,它用于设置 MITER 型拐角的延长线的最大值。所谓「延长线的最大值」
7.色彩优化
* setDither(boolean dither) 设置图像的抖动
* setFilterBitmap(boolean filter) 设置过滤
8.setPathEffect(PathEffect effect)
> 使用 PathEffect 来给图形的轮廓设置效果。对 Canvas 所有的图形绘制有效,也就是 drawLine() drawCircle() drawPath() 这些方法
9.CornerPathEffect // 把所有拐角变成圆角。
10.DiscretePathEffect
> DiscretePathEffect 具体的做法是,把绘制改为使用定长的线段来拼接,并且在拼接的时候对路径进行随机偏离。它的构造方法 DiscretePathEffect(float segmentLength, float deviation) 的两个参数中, segmentLength 是用来拼接的每个线段的长度, deviation 是偏离量。这两个值设置得不一样,显示效果也会不一样
* 把线条进行随机的偏离,让轮廓变得乱七八糟。乱七八糟的方式和程度由参数决定。
11.DashPathEffect //使用虚线来绘制线条。