一、canvas常用绘制方法:
- 文本
canvas.drawText - 填充
drawARGB(int a, int r, int g, int b)
drawColor(int color)
drawRGB(int r, int g, int b)
drawColor(int color, PorterDuff.Mode mode) - 几何图形
canvas.drawArc (扇形)
canvas.drawCircle(圆)
canvas.drawOval(椭圆)
canvas.drawLine(线)
canvas.drawPoint(点)
canvas.drawRect(矩形)
canvas.drawRoundRect(圆角矩形)
canvas.drawVertices(顶点)
cnavas.drawPath(路径) - 图片
canvas.drawBitmap (位图)
canvas.drawPicture (图片)
二、基础操作 svae()、restore()
-
save():
用来保存Canvas的状态,save()方法之后的代码,可以调用Canvas的平移、放缩、旋转、裁剪等操作! -
restore():
用来恢复Canvas之前保存的状态,防止save()方法代码之后对Canvas执行的操作,继续对后续的绘制会产生影响,通过该方法可以避免连带的影响!
三、canvas.rotate理解
很多文章将这个方法理解为 旋转画布,我觉得很难理解。我把它理解为顺时针旋转这个画布所对应的观察者的视角,其中观察者就是用户,是观看屏幕内容的真实肉身人。
举例:
效果图:
分析:
上图黄色线 为第1条线, save()后, canvas.rotate(90) 用来将观察者 顺时针 旋转90度,如下图所示,在save()和restore()之间的操作都是针对 旋转视角后的 坐标系 操作。