安卓Canvas的save以及saveLayer简单总结

安卓Canvas的save以及saveLayer简单总结

首先相同的地方,两者都会保存当前画布的状态,并压入栈中。不同点save不会产生新的图层,saveLayer会产生新的图层,并且之后的画图都会在新的图层中,画完后在叠加在之前的图层上。saveLayer依据当前canvas的状态来产生新的图层,saveLayer会增加使用内存,需要合理分配。restore和restoreToCount可以通用,restoreToCount通过返回的id弹栈,会把上面的状态全部丢弃,前者则是直接弹出栈顶的画布状态。补充一点,canvas的save以及saveLayer对于调用canvas.drawColor();两者会有差别,前者总是全局画出颜色,后者会根据状态来对应画布状态来显示。大家可以试一试。

你可能感兴趣的:(Android笔记)