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

来源:互联网 发布:mysql 修改数据表字段 编辑:程序博客网 时间:2024/05/21 09:51

很多时候都看到对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应该是成对的使用的!

原创粉丝点击