我已经使用 Camera2 api 编写了一个相机应用程序。 但是当我以横向模式打开应用程序时,预览中的对象看起来顺时针旋转了 90 度。
但我在 Potrait 模式下没有看到同样的问题。
是什么导致了横向模式下的这个问题?
这是屏幕旋转代码:
private static final SparseIntArray ORIENTATIONS = new SparseIntArray();
static {
ORIENTATIONS.append(Surface.ROTATION_0, 90);
ORIENTATIONS.append(Surface.ROTATION_90, 0);
ORIENTATIONS.append(Surface.ROTATION_180, 270);
ORIENTATIONS.append(Surface.ROTATION_270, 180);
}
最佳答案
我遇到了同样的问题 - 这是因为默认的相机传感器方向可能是 90 度或 270 度,具体取决于您的设备。为了将相机输出渲染到屏幕上,在设置相机输出时需要进行一些预处理。
Google 官方示例中的方法 setUpCameraOutputs(int width, int height) 显示了如何执行此操作( https://github.com/googlesamples/android-Camera2Basic/blob/master/Application/src/main/java/com/example/android/camera2basic/Camera2BasicFragment.java )。基本上,它会检查相机的传感器方向并判断预览区域是否需要旋转。
关于java - 横向模式下的预览方向使用 Camera2 api 顺时针旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348225/