Canvas和Paint简介
Canvas可以称之为画布,在Android中,整个view就是一张画布,也就是Canvas,我们可以通过画笔,也就是paint,在这张画布(canvas)上绘制各种图形。
它们的各种常用方法如下表格:
Canvas:
操作类型 | 函数名 | 作用 |
---|---|---|
绘制颜色 | drawColor, drawRGB, drawARGB | 使用单一颜色填充整个画布 |
绘制基本形状 | drawPoint, drawPoints, drawLine, drawLines, drawRect, drawRoundRect, drawOval, drawCircle, drawArc | 依次为 点、线、矩形、圆角矩形、椭圆、圆、圆弧 |
绘制图片 | drawBitmap, drawPicture | 绘制位图和图片 |
绘制文本 | drawText, drawPosText, drawTextOnPath | 依次为 绘制文字、绘制文字时指定每个文字位置、根据路径绘制文字 |
绘制路径 | drawPath 绘制路径, | 绘制贝塞尔曲线时也需要用到该函数 |
顶点操作 | drawVertices, drawBitmapMesh | 通过对顶点操作可以使图像形变,drawVertices直接对画布作用、 drawBitmapMesh只对绘制的Bitmap作用 |
画布剪裁 | clipPath, clipRect | 设置画布的显示区域 |
画布快照 | save, restore, saveLayerXxx, restoreToCount, getSaveCount | 依次为 保存当前状态、 回滚到上一次保存的状态、 保存图层状态、 回滚到指定状态、 获取保存次数 |
画布变换 | translate, scale, rotate, skew | 依次为 位移、缩放、 旋转、错切 |
Matrix(矩阵) | getMatrix, setMatrix, concat | 实际上画布的位移,缩放等操作的都是图像矩阵Matrix, 只不过Matrix比较难以理解和使用,故封装了一些常用的方法。 |
Paint:
函数名 | 作用 |
---|---|
setARGB(int a, int r, int g, int b) | 设置绘制颜色,a代表透明度,rgb代表颜色数值 |
setColor(int color) | 设置绘制颜色,使用颜色值表示,包括透明度和RGB |
setAntiAlias(boolean aa) | 是否使用抗锯齿。会消耗大量资源,绘制速度变慢 |
setShader(Shader shader) | 设置图像效果,可以使用shader绘制各种渐变效果 |
setShadowLayer(float radius, float dx, float dy, int color) | 在图形下边绘制阴影,radius为阴影角度,dx,dy为阴影在x和y方向的距离,color为阴影颜色 |
setStyle(Paint.Style style) | 设置画笔样式,Style.FILL:实心;STROKE:空心;FILL_OR_STROKE:同时实心与空心 |
setStrokeCap(Paint.Cap cap) | 当画笔样式为Stroke或FILL_OR_STROKE时,设置笔刷的图形样式,如Cap.ROUND,Cap.SQUARE |
setStrokeWidth(float width) | 当画笔样式为Stroke或FILL_OR_STROKE时,设置笔刷的粗细 |
setXfermode(Xfermode mode) | 设置图形重叠时的处理方式,如合并,取交集等等,常用作橡皮擦的清楚效果 |
setTextSize(float textSize) | 设置绘制文字的大小 |
网友评论