- save:保存画布的状态
- restore:将画布保存到之前保存的状态
这有什么用呢?
当调用 save 保存了画布的状态之后,就可以对画布为所欲为了(调用 Canvas 的平移、放缩、旋转、错切、裁剪等操作),反正可以调用 restore 恢复状态不是吗?
save 和 restore 一般配套使用。
一个例子:
class CustomView(context: Context?, attrs: AttributeSet?) : View(context, attrs) {
private val paint: Paint = Paint(Paint.ANTI_ALIAS_FLAG)
private val bitmap: Bitmap by lazy {
BitmapFactory.decodeResource(
resources,
R.drawable.ic_launcher
)
}
init {
paint.color = Color.GREEN
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
canvas.save()
val path = Path()
path.addCircle(bitmap.width / 2.0f, bitmap.height/ 2.0f, 35.0f, Path.Direction.CW)
// 裁切画布,绘制圆形图片
canvas.clipPath(path)
val matrix = Matrix()
canvas.