一、简介
Android上绘制2D图形的基础是canvas和paint。canvas是画布,paint是画笔。canvas决定形状,那paint就是决定绘制的具体的颜色和效果。canvas虽然是基础,但是很强大。
二、paint(画笔)
这里主要介绍paint的几个常用的方法。
Paint.setStyle(Paint.Style.FILL);//设置画笔的填充模式
//具体的模式有三种:
STROKE //描边
FILL //填充
FILL_AND_STROKE //描边加填充
setARGB(int a,int r,int g,int b);
//设置绘制的颜色,a代表透明度,r,g,b代表颜色值。
setAlpha(int a);
//设置绘制图形的透明度。
setColor(int color);
//设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。
setAntiAlias(boolean aa);
//设置是否使用抗锯齿功能,会消耗较大资源。
setStrokeWidth(float width);
//当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度
三、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比较难以理解和使用,故封装了一些常用的方法。