初学canvas,canvas.save()与canvas.restore()的作用

先解释下:

1.画布上坐标轴的初始状态的原点是在画布左上角的,x轴向右延伸,y轴向下延伸。

2.canvas.roatecanvas.translate、canvas.scale,分别是旋转、平移、缩放操作,这些操作都是针对坐标轴的进行的,就是执行这些操作的时候,原先画布上的内容不会受到影响,受影响的是接下来画出的内容。

比如在一张空白的画布上执行如下代码:

      canvas.drawBitmap(bmp1, 0,0,paint); 

      canvas.scale(5f, 5f); 

      canvas.drawBitmap(bmp2, 0,0,paint); 


最终呈现出来的样子是bmp1没有缩放,bmp2进行了缩放。

3.以上两点的理解,可以参考这个网址:http://www.th7.cn/Program/Android/201406/213375.shtml


好了,进入正题:canvas.save()可以保存当前坐标轴的状态,一般我们先执行canvas.save(),然后再对坐标轴进行平移旋转等操作,再画出所要画的内容,最后,使用canvas.restore()使坐标轴复原(复原到上一个save的状态)。

举个例子吧,在一张空白画布上执行以下代码:

      canvas.save();   

      canvas.scale(5f, 5f);  

      canvas.drawBitmap(bmp1, 0,0,paint);  

        canvas.restore(); 

      canvas.drawBitmap(bmp2, 0,0,paint); 

最终呈现出来的样子是bmp1缩放了,bmp2并未缩放。

 




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值