Canvas
This commit is contained in:
@@ -260,31 +260,20 @@ float sy:将画布在y轴方向上倾斜相应的角度,sy为倾斜角度的ta
|
|||||||
|
|
||||||
<b>
|
<b>
|
||||||
Q: 为什存在快照与回滚<br/>
|
Q: 为什存在快照与回滚<br/>
|
||||||
A:画布的操作是不可逆的,而且很多画布操作会影响后续的步骤,例如第一个例子,两个圆形都是在坐标原点绘制的,而因为坐标系的移动绘制出来的实际位置不同。所以会使用save()和restore()对画布的一些状态进行保存和回滚。
|
A:画布的操作是不可逆的,而且很多画布操作会影响后续的步骤,例如第一个例子,两个圆形都是在坐标原点绘制的,而因为坐标系的移动绘制出来的实际位置不同。所以会对画布的一些状态进行保存和回滚。
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b>与之相关的API:</b>
|
<b>与之相关的API:</b>
|
||||||
|
|
||||||
相关API | 简介
|
相关API | 简介
|
||||||
--- | ---
|
--- | ---
|
||||||
public int save () | 保存Canvas当前全部状态(放入状态栈栈顶,返回值为在栈中的位置)
|
save | 将Canvas当前全部状态保存放入栈中
|
||||||
public int save (int saveFlags) | 根据saveFlags选择性的保存某些状态(放入状态栈栈顶,返回值为在栈中的位置)
|
saveLayerXxx | 新建一个图层放入栈中
|
||||||
public void restore () | 取出最近一次保存(栈顶)的状态进行恢复
|
restore | 弹出栈顶最近在状态或图层进行恢复
|
||||||
public void restoreToCount (int saveCount) | 取出第saveCount次保存的状态进行恢复
|
restoreToCount| 弹出指定位置以上所有的状态并按照指定位置状态进行恢复
|
||||||
public int getSaveCount () | 获取保存的次数(即状态栈中保存状态的数量)
|
getSaveCount | 获取栈中内容的数量(即保存次数)
|
||||||
|
|
||||||
<b>可以保存和恢复的内容:</b>
|
关于状态保存和恢复内容也有不少,不过暂不展开,今天只了解比较基础常用的操作,其余内容以后会详细讲解:
|
||||||
|
|
||||||
状态 | 简介
|
|
||||||
--- | ---
|
|
||||||
translate | 位移
|
|
||||||
scale | 缩放
|
|
||||||
rotate | 旋转
|
|
||||||
skew | 倾斜(错切)
|
|
||||||
concat | 矩阵相乘
|
|
||||||
clipRect, clipPath | 画布剪裁
|
|
||||||
|
|
||||||
虽然上面写了很多,不过一般最常用的两个是下面的两个:
|
|
||||||
|
|
||||||
<b>
|
<b>
|
||||||
save():把当前的画布的状态进行保存,然后放入特定的栈中。<br/>
|
save():把当前的画布的状态进行保存,然后放入特定的栈中。<br/>
|
||||||
@@ -299,11 +288,6 @@ restore():把栈中最顶层的画布状态取出来,并按照这个状态
|
|||||||
```
|
```
|
||||||
当然了,你可以多次save和restore。
|
当然了,你可以多次save和restore。
|
||||||
|
|
||||||
你可以通过<b>canvas.getSaveCount()</b>来获取保存的次数:
|
|
||||||
```
|
|
||||||
它的返回值最小为1,代表Canvas最初的默认状态。
|
|
||||||
每调用一次save()它的数值会加1
|
|
||||||
每调用一次restore()它的数值会减1(当数值为1时不变)
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user