android camera颠倒,android开发步步为营之112:关于Camera镜像上下左右颠倒问题的解决办法...
时间: 2024-05-01 10:22:38 浏览: 13
Android相机预览时出现颠倒的问题,通常是因为相机传感器和屏幕的方向不一致导致的。在使用Camera API时,可以通过设置Camera.Parameters中的setDisplayOrientation方法来解决。
具体步骤如下:
1. 获取当前屏幕方向
```java
int rotation = getWindowManager().getDefaultDisplay().getRotation();
```
2. 计算相机预览需要旋转的角度
```java
Camera.CameraInfo info = new Camera.CameraInfo();
Camera.getCameraInfo(cameraId, info);
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0:
degrees = 0;
break;
case Surface.ROTATION_90:
degrees = 90;
break;
case Surface.ROTATION_180:
degrees = 180;
break;
case Surface.ROTATION_270:
degrees = 270;
break;
}
int result;
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // 前置摄像头需要镜像翻转
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
```
3. 设置相机预览旋转角度
```java
camera.setDisplayOrientation(result);
```
注意:如果使用Camera2 API,则需要通过CameraCharacteristics来获取相机方向和屏幕方向,并做出相应的旋转处理。