Canvas.save会将一个Matrix矩阵保存到一个栈中,当调用Canvas.restore时,会将栈顶的Matrix出栈,并将其应用到当前Canvas,Matrix是一个3*3的矩阵,他里面有9个参数,
cosX -sinX translateX
sinX cosX translateY
0 0 scale
其中,sinX和cosX,代表的是旋转角度的sin和cos值。注意旋转的正方向是顺时针方向。translateX和translateY代表的是平移的X和Y。scale代表的是缩放的大小。
Canvas.saveLayer主要是用来新建一个图层,后续的绘图操作都在新建的Layer上面进行,当我们调用restore或restoreToCount时,会将对应图层的绘制内容应用到Canvas画布上
区别:Canvas.save只保存了变幻信息,例如平移、缩放、封装等,而Canvas.saveLayer除了保存这些外,还保存了图像信息