美文网首页
画布操作

画布操作

作者: 狂奔的_土豆 | 来源:发表于2020-05-19 17:58 被阅读0次

    所有的画布操作都只影响后续的绘制,对之前已经绘制过的内容没有影响

    位移translate方法
    //位移
    canvas.translate(200, 300);
    

    位移是基于当前位置移动,而不是每次基于屏幕左上角的(0,0)点移动,初始默认是屏幕左上角

    缩放scale方法
    //1
    public void scale (float sx, float sy);
    //2
    public final void scale(float sx, float sy, float px, float py);
    

    1.sx: x轴的缩放比例,缩放中心默认坐标轴原点,缩放前的值sx的绝对值=缩放后的值;如果sx<0,则再根据x轴进行翻转
    2.sy: y轴的缩放比例,缩放中心默认坐标轴原点,缩放前的值
    sy的绝对值=缩放后的值;如果sy<0,则根据y轴进行翻转
    3.px,py: 设置缩放中心

    旋转rotate
    错切skew
    保存和恢复画布状态

    1.Save():每次调用Save()函数,都会把当前的画布的状态进行保存,即保存当前Canvas的状态,然后放入特定的栈中,这样之后,我们就可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作啦;
    2.estore():每当调用Restore()函数,就会把栈中最顶层的画布状态取出来,并按照这个状态恢复当前的画布,在这个画布上做画,也可以说,是用来恢复Canvas之前保存的状态,防止save后对Canvas执行的操作对后续的绘制有影响。

    注意:save和restore要配对使用(restore可以比save少,但不能多),如果restore调用次数比save多,会引发Error。

    相关文章

      网友评论

          本文标题:画布操作

          本文链接:https://www.haomeiwen.com/subject/bwzbohtx.html