Canvas
- 概念:画布,通过画笔绘制几何图形、文本、路径和位图等
- 常用API类型:绘制、变换、状态保存和恢复
绘制几何图形、文本、路径和位图等API
// 在指定坐标绘制位图。
void drawBitmap(Bitmap bitmap, float left, float top, Paint paint)
// 根据给定的起始点和结束点之间绘制连线。
void drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
// 根据给定的路径,绘制连线。
void drawPath(Path path, Paint paint)
// 根据给定的坐标,绘制点。
void drawPoint(float x, float y, Paint paint)
// 根据给定的坐标,绘制文字。
void drawText(String text, int start, int end, float x, float y, Paint paint)
...
位置、形状变换等API
// 平移
void translate(float dx, float dy)
// 缩放
void scale(float sx, float sy)
// 旋转
void rotate(float degrees)
// 倾斜
void skew(float sx, float sy)
// 切割操作,参数指定区域内可以继续绘制
void clipXXX(...)
// 反向切割操作,参数指定区域内不可以绘制
void clipOutXXX(...)
// 可通过Matrix实现平移、缩放、旋转等操作
void setMatrix(Matrix matrix)
...
Canvas平移演示
-
在(0,0)绘制一个400x400的红色矩形
mPaint.setColor(Color.RED); canvas.drawRect(0, 0, 400, 400, mPaint);
-
Canvas平移到(50,50),再绘制一个400x400的蓝色矩形
canvas.translate(50,50); mPaint.setColor(Color.BLUE); canvas.drawRect(0, 0, 400, 400, mPaint);
-
再绘制一个起点为(0,0)到终点(600,600)的绿线
mPaint.setColor(Color.GREEN); canvas.drawLine(0,0,600,600,mPaint);