Canvas、Layer
PS:addArc(Rect,startAngle,sweepAngle)中
startAngle:确定角度的起始位置
sweepAngle : 确定扫过的角度,扫过的角度360为顺时针一圈,-360为逆时针一圈,但如果扫过的角度超过360则起点会变成0度而非startAngle百分比圆的时候特别注意,这时候一般设置为359
PS:saveLayer可以为canvas创建一个新的透明图层,在新的图层上绘制,并不会直接绘制到屏幕上,而会在restore之后,绘制到上一个图层或者屏幕上(如果没有上一个图层)
PS:需要新建图层的场景(起隔离效果):
1.使用xfermode处理时,可以新建图层(隔离开不处理元素)进行xfermode处理。(直接进行处理可能会因为背景或者个别图像等原因干扰得不到预期效果)
2.个别图像具有透明度
Paint
绘制文字
方法 | 作用 |
---|---|
setColor(@ColorInt int color) | 设置画笔颜色 |
setStrokeWidth(float width) | 设置画笔粗细 |
setTextSkewX(float f) | 设置倾斜,负右斜,正为左 |
setARGB(int a,int r,int g,int b) | 设置颜色,a为透明度 |
setTextSize(float textSize) | 设置绘制文字大小 |
setFakeBoldText(boolean fakeBoldText) | 是否粗体 |
setTextAlign(Paint.Align align) | 设置文字对齐方式,LEFT,CENTER,RIGHT |
setUnderlineText(boolean underlineText) | 设置下划线 |
setStyle(Style style) | 设置画笔样式,FILL,STROKE,FILL_AND_STROKE |
setTypeface(Typeface typeface) | 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等 |
绘制图像
方法 | 作用 |
---|---|
setDither(boolean dither) | 设置抖动处理 |
setAlpha(int a) | 设置透明度 |
setAntiAlias(boolean aa) | 是否开启抗锯齿 |
setFilterBitmap() | 是否开启优化Bitmap |
setColorFilter(ColorFilter filter) | 设置颜色过滤 |
setMaskFilter(MaskFilter maskfilter) | 设置滤镜的效果 |
setShader(Shader shader) | 设置图像渐变效果 |
setSrokeJoin(Paint.Join join) | 设置图像结合方式 |
setXfermode(Xfermode xfermode) | 设置图像重叠效果 |
setPathEffect(PathEffect effect) | 设置路径效果 |
reset() | 恢复默认设置 |
Path
OP
setFillType 设置填充模式
INVERSE_EVEN_ODD(反奇偶规则)、INVERSE_WINDING(反非零环绕数规则)是EVEN_ODD(奇偶规则) 、WINDING (默认值 非零环绕数规则)的反色
PathMeasure
PathMeasure是用来测量path的。可以利用PathMeasure来截取path的某一段;获取指定长度的具体位置信息等;借此可以做出一些效果。