Path方法
1、Path常用操作表
2、shader着色器种类
- Shader.TileMode中有3个值可选:
CLAMP(夹子模式)
,MIRROR(镜像模式)
和REPEAT(重复模式)
- LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile)线性渐变:x0 y0 x1 y1渐变的两个端点的位置、color0 color1端点颜色、tile端点范围之外的着色规则
- RadialGradient(float centerX, float centerY, float radius, int centerColor, int edgeColor, TileMode tileMode)辐射渐变:centerX centerY辐射中心的坐标、radius辐射半径、centerColor辐射中心的颜色、edgeColor辐射边缘的颜色、tileMode辐射范围之外的着色模式
- SweepGradient(float cx, float cy, int color0, int color1)扫描渐变:cx cy扫描的中心、color0扫描的起始颜色、color1扫描的终止颜色
- BitmapShader(Bitmap bitmap, Shader.TileMode tileX, Shader.TileMode tileY)bimap着色:bitmap用来做模板的bitmap、tileX横向的TileMode、tileY纵向的TileMode
- ComposeShader(Shader shaderA, Shader shaderB, PorterDuff.Mode mode)混合着色器:shaderA shaderB两个相继使用的shader、mode两个shader叠加模式
3、PorterDuff.Mode(17个):12种Alpha合成(SRC、SRC_OVER、SRC_IN、SRC_ATOP、DST、DST_OVER、DST_IN、DST_ATOP、CLEAR、SRC_OUT、DST_OUT、XOR)、5种混合(DARKEN、LIGHTEN、MULTIPLY、SCREEN、OVERLAY)、后画的为源图像
4、ColorFilter种类
-
LightingColorFilter(int mul, int add)简单光照效果:mul用来和目标像素相乘、add用来和目标像素相加
- PorterDuffColorFilter(int color,PorterDuff.Mode mode)颜色混合:color源颜色、mode合成模式
- ColorMatrixColorFilter一个4*5的矩阵和ARGB相乘得到目标的颜色
- 5、Xfermode注意事项
- 使用离屏缓冲:Canvas.saveLayer、View.setLayerType
- 控制好透明区域
6、Paint有3中风格:FILL、STROKE、FILL_AND_STROKE,默认为FILL
7、线头形状有3种:BUTT(平头)、ROUND(圆头)、SQUARE(方头),默认为BUTT
8、拐角形状有3种:MITER(尖角)、BEVEL(平角)、ROUND(圆角),默认为MITER
9、PathEffect轮廓种类(4种单一效果的、2种组合效果的)
- CornerPathEffect(float radius)拐角变成直角:radius圆角半径
- DiscretePathEffect(float segmentLength, float deviation)线条随机偏离:segmentLength用来拼接的每个线段的长度、deviation偏离量
- DashPathEffect(float[] intervals, float phase)虚线绘制线条:intervals虚线格式(数组元素为偶数,最少2个,划线长度、空白长度、依次排列)、phase虚线的偏移量
- PathDashPathEffect(Path shape, float advance, float phase, PathDashPathEffect.Style style)用path绘制虚线:shape用来绘制的path、advance相邻两个shape段的间隔(两个起点间隔)、phase偏移量、style(TRANSLATE位移、ROTATE旋转、MORPH变体)用来指定拐弯改变的时候shape的转换方式
- SumPathEffect(PathEffect path1,PathEffect path2)组合模式:path1第一个pathEffect、path2第二个pathEffect,效果出来是两种轮廓,两种轮廓叠加结果
- ComposePathEffect(PathEffect path1,PathEffect path2)组合模式:效果出来时一种轮廓,两个轮廓合成后的结果
10、MaskFilter画面过滤种类
- BlurMaskFilter.Blur模糊类型:NORMAL(内外都模糊绘制)、SOLID(内部正常绘制,外部模糊)、INNER(内部模糊,外部不绘制)、OUTER(内部不绘制,外部模糊)
- BlurMaskFilter(float radius, BlurMaskFilter.Blur style)模糊效果:radius模糊的范围,style模糊种类
- EmbossMaskFilter(float[] direction, float ambient, float specular, float blurRadius)浮雕效果:direction3个元素数组指定光源的方向、ambient环境光的强度数值为0到1、specular炫光的系数、blurRadius应用光线的范围
11、实际的Path指drawPath的绘制内容的轮廓,要算上线条的宽度和设置的PathEffect;文字的path:drawText方法在下层全部被转化成图形,对图像进行绘制,文字的path就是文字的轮廓