Android 自定义控件之2D绘图初步
绘图的目的
在自定义控件中,想要绘制出我们想要的图形或者效果,有时单靠图片的形式不一定能达到想要的动态效果,那么就必须重写onDraw函数,onDraw函数包含一个Canvas参数,我们可以使用Paint在Canvas中进行绘制,以绘制我们所需要的图形,可以把它想象成画图软件(如PS中的画笔和画布),这样会很好理解,咱们今天就一起简单学习下2D绘图的基础知识
Paint类
简单看下Paint类,咱们可以把它理解为一个画笔,常用的方法有:
setStyle(Style style)
设置画笔样式(填充、描边、填充和描边)setStrokeWidth(float width)
设置画笔宽度(或粗细更好理解)setColor(@ColorInt int color)
设置画笔颜色setTextAlign(Align align)
设置画笔文字的对齐方式,绘制文字的时候设置(左、中、右)setTextSize(float textSize)
设置画笔文字的大小(字号)setFakeBoldText(boolean fakeBoldText)
设置画笔文字是否为粗体
更多的就不描述了,大家可以自行研究下
Canvas类
我们的画笔已经准备就绪了,那么我们要开始画了,再看下Canvas类,常用的方法有:
画点,参数为xy坐标,画笔
drawPoint(float x, float y, @NonNull Paint paint)
画线,参数为起始xy和结束xy坐标,画笔,两点共线嘛
drawLine(float startX, float startY, float stopX, float stopY, @NonNull Paint paint)
画矩形,参数为左上右下,分别代表与画布最(左/上/右/下)边的距离,画笔,可以动手在纸上画下,真的能画出一个矩形哦
drawRect(float left, float top, float right, float bottom, @NonNull Paint paint)
画弧线,参数为弧所在的矩形(其实就是左上右下),起始角度,画多少度(而不是画到多少度),是否显示起始和终点的连线,画笔
drawArc(@NonNull RectF oval, float startAngle, float sweepAngle, boolean useCenter, @NonNull Paint paint)
画圆,参数为圆心坐标点,半径,画笔,很好理解吧
drawCircle(float cx, float cy, float radius, @NonNull Paint paint)
画文字,参数为文本字符串,绘制的坐标
drawText(@NonNull String text, float x, float y, @NonNull Paint paint)
以上便是Canvas类常用便于理解的画图方法,当然这些方法有一些重载和拓展的,其中的参数没那么好理解,大家可以自行研究下
2D绘图这部分基础就先学习到这里吧
如有描述不当、错误请指正,谢谢。