Skip to content


Posted on:April 7, 2020 at 14:07:33 GMT+8

要绘制东西,需要 4 个基本组件:存储像素点的 Bitmap、主持绘制的 Canvas、绘图的基本元素(Path,Rect,text,Bitmap等)、描述颜色和样式的 Paint。

View 绘制的一般流程:

  1. 缓存需要绘制的内容;
    1. 使用 Bitmap
    2. 存储坐标和绘制指示
  2. 新建一个 Canvas类:extraCanvas;
  3. 使用 extraCanvas 在 Bitmap上绘制内容;
  4. 在 onDraw(canvas: Canvas) 中,用canvas.drawBitmap()等方法,把图像展示到屏幕上。

Canvas 类

Canvas 主管绘制。

在 Android 中,有几种方法可以实现自定义 2D 图像和动画,如:使用drawable、使用 Canvas 类的一些方法。

Canvas 可以实现的一些操作:


drawColor() drawBitmap() drawCircle() translate() scale() clipRect() drawText()

Bitmap 类

Bitmap 位图,存储要绘制的信息。


Paint 类

Paint 是画笔。

// Set up the paint with which to draw.
private val paint = Paint().apply {
   color = drawColor
   // Smooths out edges of what is drawn without affecting shape.
   isAntiAlias = true
   // Dithering affects how colors with higher-precision than the device are down-sampled.
   isDither = true
   style = Paint.Style.STROKE // default: FILL
   strokeJoin = Paint.Join.ROUND // default: MITER
   strokeCap = Paint.Cap.ROUND // default: BUTT
   strokeWidth = STROKE_WIDTH // default: Hairline-width (really thin)

Path 类

Path 是路径。

Path 类封装了一些由直线、贝赛尔曲线、立方曲线复合的几何路径。TA 可以被用作cavans.drawPath(),根据 Paint 设置的不同,被填充或笔画,或者用于裁剪和在 path上绘制文字。


Shader 类