一、canvas常用绘制方法:

  1. 文本
    canvas.drawText
  2. 填充
    drawARGB(int a, int r, int g, int b)
    drawColor(int color)
    drawRGB(int r, int g, int b)
    drawColor(int color, PorterDuff.Mode mode)
  3. 几何图形
    canvas.drawArc (扇形)
    canvas.drawCircle(圆)
    canvas.drawOval(椭圆)
    canvas.drawLine(线)
    canvas.drawPoint(点)
    canvas.drawRect(矩形)
    canvas.drawRoundRect(圆角矩形)
    canvas.drawVertices(顶点)
    cnavas.drawPath(路径)
  4. 图片
    canvas.drawBitmap (位图)
    canvas.drawPicture (图片)

二、基础操作 svae()、restore()

  1. save():
    用来保存Canvas的状态,save()方法之后的代码,可以调用Canvas的平移、放缩、旋转、裁剪等操作!

  2. restore():
    用来恢复Canvas之前保存的状态,防止save()方法代码之后对Canvas执行的操作,继续对后续的绘制会产生影响,通过该方法可以避免连带的影响!

三、canvas.rotate理解

很多文章将这个方法理解为 旋转画布,我觉得很难理解。我把它理解为顺时针旋转这个画布所对应的观察者的视角,其中观察者就是用户,是观看屏幕内容的真实肉身人。

举例:
Android canvas save restore saveLayer的异同点
效果图:
Android canvas save restore saveLayer的异同点
分析:
上图黄色线 为第1条线, save()后, canvas.rotate(90) 用来将观察者 顺时针 旋转90度,如下图所示,在save()和restore()之间的操作都是针对 旋转视角后的 坐标系 操作。
Android canvas save restore saveLayer的异同点

相关文章:

  • 2022-12-23
  • 2021-08-29
  • 2022-12-23
  • 2021-05-07
  • 2021-10-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-10
  • 2021-08-28
  • 2021-08-01
相关资源
相似解决方案