自定义View之Canvas和Paint

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) 设置绘制文字的大小

你可能感兴趣的:(自定义View之Canvas和Paint)