Android_Graphics学习-Canvas save() restore()的简单理解

很多时候都看到对canvas的save()和restore()运用。

 

从名字上面来看,就是保存canvas和还原canvas,这个俩个在处理图像的平移、旋转、剪切方面使用的比较多。


 /**
     * Saves the current matrix and clip onto a private stack. Subsequent
     * calls to translate,scale,rotate,skew,concat or clipRect,clipPath
     * will all operate as usual, but when the balancing call to restore()
     * is made, those calls will be forgotten, and the settings that existed
     * before the save() will be reinstated.
     *
     * @return The value to pass to restoreToCount() to balance this save()
     */
    public native int save();

SDK如是解释:

 

个人的理解是:保存当前的matrix clip translate等操作。在save()之后的这些操作将保存到画布中去,当调用restore()的时候,将还原canvas到调用save()之前的状态。


 /**
     * This call balances a previous call to save(), and is used to remove all
     * modifications to the matrix/clip state since the last save call. It is
     * an error to call restore() more times than save() was called.
     */
    public native void restore();

大致意思应该是:还原canvas的类似matrix/clip 等操作到save()调用之前的状态。


并且save()和restore应该是成对的使用的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值