1.Camera简介
Android中共有两个Camera类,导包时请注意。
android.graphics.Camera:3D开发
android.hardware.Camera:相机开发
官方介绍
A camera instance can be used to compute 3D transformations and generate a matrix that can be applied, for instance, on aCanvas。
一个照相机实例可以被用于计算3D变换,生成一个可以被使用的Matrix矩阵,一个实例,用在画布上。
Camera内部机制实际上还是opengl,不过大大简化了使用。
2.Camera常用方法
2.1.
方法:Camera()
作用:创建一个没有任何转换效果的新的Camera实例。
2.2.
方法:applyToCanvas(Canvas canvas)
作用:根据当前的变换计算出相应的矩阵,然后应用到制定的画布上。
2.3.
方法:getLocationX()
作用:获取Camera的x坐标。
2.4.
方法:getLocationY()
作用:获取Camera的y坐标。
2.5.
方法:getLocationZ()
作用:获取Camera的z坐标。
2.6.
方法:getMatrix(Matrixmatrix)
作用:获取转换效果后的Matrix对象。
2.7.
方法:restore()
作用:恢复保存的状态。
2.8.
方法:rotate(float x, float y, float z)
作用:沿X、Y、Z坐标进行旋转。
2.9.
方法:rotateX(float deg)
作用:X轴进行旋转。
2.10.
方法:rotateY(float deg)
作用:Y轴进行旋转。
2.11.
方法:rotateZ(float deg)
作用:Z轴进行旋转。
2.12.
方法:save()
作用:保存状态。
2.13.
方法:setLocation(float x, float y, float z)
作用:设置X、Y、Z轴位置
2.14.
方法:translate(float x, float y, float z)
作用:沿X、Y、Z轴进行平移
3.Matrix常用方法
Android 自定义View之使用Matrix(矩阵)操作图片
4.Camera坐标系
Camera的坐标系是左手坐标系。当手机平整的放在桌面上,X轴是手机的水平方向,Y轴是手机的竖直方向,Z轴是垂直于手机向里的那个方向。
camera位于坐标点(0,0),也就是视图的左上角。
camera.translate(10,50,-180)的意思是把观察物体右移(+x)10,上移(+y)50,向-z轴移180(即让物体接近camera,这样物体将会变大)。