Files
AndroidNote/CustomView/Advance/[11]Matrix_3D_Camera.md
GcsSloop ec03e66532 Update
2016-09-08 00:30:02 +08:00

2.5 KiB
Raw Blame History

Matrix-Camera

作者微博: @GcsSloop

相关文章: 自定义View目录

本篇依旧属于Matrix主要讲解CameraAndroid下有很相机应用其中的美颜相机更是不少不过今天这个Camera可不是我们平时拍照的那个相机而是graphic包下的Camera专业给Matrix拍照的相机不过既然是相机作用都是类似的主要是将3D的内容拍扁变成2D的内容。

众所周知我们的手机屏幕是一个2D的平面所以也没办法直接显示3D的信息因此我们看到的所有3D效果都是3D在2D平面的投影而已而本文中的Camera主要作用就是这个将3D信息转换为2D平面上的投影实际上这个类更像是一个操作Matrix的工具类使用Camera和Matrix可以在不使用OpenGL的情况下制作出简单的3D效果。

Camera常用方法表

方法类别 相关 简介
基本方法 saverestore 保存、 回滚
常用方法 getMatrix、applyToCanvas 获取Matrix、应用到画布
旋转 rotate、rotateX、rotateY、rotateZ 各种旋转
平移 translate 位移
相机位置 setLocation、getLocationX、getLocationY、getLocationZ 设置与获取相机位置

Camera的方法并不是特别多很多内容与之前的讲解的Canvas和Matrix类似不过又稍有不同之前的画布操作和Matrix主要是作用于2D空间而Camera则主要作用于3D空间。

基本方法

基本方法就有两个saverestore,主要作用为保存当前状态和恢复到上一次保存的状态,通常成对使用,常用格式如下:

camera.save();		// 保存状态
... 				// 具体操作
camera.retore();	// 回滚状态

常用方法

这两个方法是Camera中最基础也是最常用的方法。

getMatrix

获取当前状态下的矩阵。

About Me

作者微博: @GcsSloop