概述
drawXXX() 系列方法和 Paint 的基础掌握了,就能够应付简单的绘制需求。它们主要包括:
- itemitemCanvas 类下的所有 draw- 打头的方法,例如 drawCircle() drawBitmap()。
- Paint 类的几个最常用的方法。具体是:
- Paint.setStyle(Style style) 设置绘制模式
- Paint.setColor(int color) 设置颜色
- Paint.setStrokeWidth(float width) 设置线条宽度
- Paint.setTextSize(float textSize) 设置文字大小
- Paint.setAntiAlias(boolean aa) 设置抗锯齿开关
颜色填充
drawRGB(int r, int g, int b) 和 drawARGB(int a, int r, int g, int b) ,它们和 drawColor(color) 只是使用方式不同,作用都是一样的。
这类颜色填充方法一般用于在绘制之前设置底色,或者在绘制之后为界面设置半透明蒙版。
绘制图形采用的是View坐标系
抗锯齿从某种角度讲,它也造成了图形的颜色失真。
drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, Paint paint) 绘制弧形或扇形
startAngle 是弧形的起始角度(x 轴的正向,即正右的方向,是 0 度的位置;顺时针为正角度,逆时针为负角度),sweepAngle 是弧形划过的角度;useCenter 表示是否连接到圆心,如果不连接到圆心,就是弧形,如果连接到圆心,就是扇形。
paint.setStyle(Paint.Style.FILL); // 填充模式
canvas.drawArc(200, 100, 800, 500, -110, 100, true, paint); // 绘制扇形
canvas.drawArc(200, 100, 800, 500, 20, 140, false, paint); // 绘制弧形
paint.setStyle(Paint.Style.STROKE); // 画线模式
canvas.drawArc(200, 100, 800, 500, 180, 60, false, paint); // 绘制不封口的弧形
drawPath(Path path, Paint paint) 画自定义图形
Path 有两类方法,一类是直接描述路径的,另一类是辅助的设置或计算。
Path方法第一类:直接描述路径。
这一类方法还可以细分为两组:添加子图形和画线(直线或者曲线)
第一组:addXxx() ————添加子图形
- addCircle(float x,float y,float radius,Direction dir)添加圆,最有一个参数是表示画圆的路径的方向。调用该方法后,使用canvas.drawPath(path,paint)就能画出一个圆
第二组:xxxTo() —————画线(直线或曲线)
- lineTo()、rLineTo()画直线,后者使用的是相对坐标
- moveTo()、rMoveTo()移动到目标位置
- arcTo()画弧形,但是多了一个参数forceMoveTo,代表是否留下移动的痕迹
- addArc()也是画弧形的,其实就是直接使用了forceMoveTo = true的简化版arcTo()
- close() 封闭当前子图形,即由当前位置向当前子图形的起点绘制一条直线。
Path方法第二类:辅助的设置或计算
使用较少
Path.setFillType(Path.FillType ft)设置填充模式
-
EVEN_ODD(全填充)
-
WINDING(默认值)(交叉填充)
- INVERSE_EVEN_ODD
- INVERSE_WINDING