Path方法

1、Path常用操作表

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应用光线的范围

Paint详解

11、实际的Path指drawPath的绘制内容的轮廓,要算上线条的宽度和设置的PathEffect;文字的path:drawText方法在下层全部被转化成图形,对图像进行绘制,文字的path就是文字的轮廓