安卓自定义View进阶-画笔基础(Paint)
这篇博客讲解了Paint(画笔)中基础的概念和使用,可以学到包括Cap、Joink、Style和各种PathEffect的使用。
用TextPaint来绘制文字
这篇博客讲解了TextPaint、FontMetrics的相关知识,可以学到绘制文字时top、ascent、descent、bottom、leading等字段的含义。
为什么 Android 上 Canvas 画出的图形不够平滑?
这篇博客讲解了通过“先在 Bitmap 上绘制再将 Bitmap 绘制到 Canvas 上”这种方式绘制图形有锯齿的原因,可以学到如何在Bitmap中绘制平滑图形。
详解Paint的setMaskFilter(MaskFilter maskfilter)
这篇博客讲解了如何通过MaskFilter绘制阴影。
画笔填充方式。
Style简介Paint.Style.FILL填充内容,也是画笔的默认模式。Paint.Style.STROKE描边,只绘制图形轮廓。Paint.Style.FILL_AND_STROKE描边+填充,同时绘制轮廓和填充内容。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuOrWlTG-1603443158926)(https://raw.githubusercontent.com/ice-coffee/blog/main/img/20201023150734.png)]
线段开始和结束时的效果。
Cap简介Paint.Cap.BUTT无线帽,也是默认类型。Paint.Cap.SQUARE以线条宽度为大小,在开头和结尾分别添加半个正方形。Paint.Cap.ROUND以线条宽度为直径,在开头和结尾分别添加一个半圆。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-olOKh7IG-1603443158959)(https://raw.githubusercontent.com/ice-coffee/blog/main/img/20201023151115.png)]
线段链接处的显示方式。
Join简介Paint.Join.MITER尖角 (默认模式)Paint.Join.BEVEL平角Paint.Join.ROUND圆角PathEffect 在绘制之前修改几何路径,它可以实现划线,自定义填充效果和自定义笔触效果。PathEffect 虽然名字看起来是和 Path 相关的,但实际上它的效果可以作用于 Canvas 的各种绘制,例如 drawLine, drawRect,drawPath 等。
PathEffect简介CornerPathEffect圆角效果,将尖角替换为圆角。DashPathEffect虚线效果,用于各种虚线效果。PathDashPathEffectPath 虚线效果,虚线中的间隔使用 Path 代替。DiscretePathEffect让路径分段随机偏移。SumPathEffect两个 PathEffect 效果组合,同时绘制两种效果。ComposePathEffect两个 PathEffect 效果叠加,先使用效果1,之后使用效果2。 // 设置效果PathEffect paint.setPathEffect(effect); // 取消PathEffect paint.setPathEffect(null);CornerPathEffect 可以将线段之间的任何锐角替换为指定半径的圆角(适用于 STROKE 或 FILL 样式)。
radius 为圆角半径大小,半径越大,path 越平滑。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PSogLBUA-1603443158963)(https://raw.githubusercontent.com/ice-coffee/blog/main/img/1603442437898.jpg)]