android画布旋转,Android Canvas 平移、缩放、旋转的理解

自己用了很久对这个几个方法,用了好多次了,但对它们的原理概念都还是没仔细理解清楚,真是太菜了。

View和canvas并不是同一个东西,可以这样想象,我们的View是固定的,相当于与一个画框,画框范围就是View的矩形范围,canvas是画布,透过画框可以看到canvas。一开始View和Canvas是对齐的,也就是画布的右上角就是画框的右上角,四条边都是对齐的,透过画框看到整个画布。然后canvas是可以变换的,我们平移canvas dx,dy,然后draw画图,就相当于把画布拖动一段距离,然后作画,作画的时候坐标系是按着画布来的,跟View没有关系。最后,透过画框看到的图就是移动了的图像。同样的旋转就相当于把画图上的图转动了,默认原点,也可设置点。 对于缩放,要理解一下,就是画的图以某个点为中心放大或者缩小。

重点的地方:我们思考这几个变换效果的时候,总是容易按照api的顺序,先思考画布变化之后,图像怎么画上去,很难像,感觉这是Android api先变画布,在作画这种顺序设置的局限吧,应该倒过来想才对,是图像画上去之后,把画布进行变化,这样想起来简单多了

值得一提的是,canvas的变换是影响后面draw的图,不影响前面画好的的图,也是是canva调用draw之后,相当于画框把画取走了,后面的canvas是一张白布。所有的图像在View这个画框上面叠加,画框外的图是看不到的。

canvas多次变化,比如平移,缩放,旋

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值