自定义 View:三维旋转
1.知识点
核心类:android.graphics.Camera,用于 3D 转换和矩阵变换,常应用于 Canvas
rotate() / rotateX() / rotateY() / rotateZ():让 Canvas 围绕 X/Y/Z 轴旋转多少°
translate():让 Canvas 在 X/Y/Z 轴上移动多少距离
setLocation():设置 Camera 的应用位置,默认在 X/Y/Z 轴上是 0, 0, -8
2.原理
一般只⽤ rotateX() 和 rorateY() 来做沿 x 轴或 y 轴的旋转,以及使⽤setLocation() 来调整放缩的视觉幅度。
对 Camera 变换之后,要用 Camera.applyToCanvas(Canvas) 来应用到 Canvas
setLocation():这个⽅法一般前两个参数都填 0,第三个参数为负值。由于这个值的单位是硬编码写死的,因此像素密度越⾼的手机,相当于 Camera 距离 View 越近,所以最好把这个值写成与机器的 density 成正⽐比的一个负值,例如 -6 * density。
3.代码
复制代码
版权声明: 本文为 InfoQ 作者【Changing Lin】的原创文章。
原文链接:【http://xie.infoq.cn/article/a065387081227ccfa7f8648d9】。文章转载请联系作者。
评论