android - 为什么 camera2 支持的预览尺寸宽度总是大于高度?

标签 android android-camera2 android-screen

我正在开发一个使用 camera2 API 的项目。当我使用以下命令获取支持的输出预览大小列表时:

StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
Size[] choices = map.getOutputSizes(SurfaceTexture.class);

输出尺寸列表总是返回宽度>高度的值,尽管屏幕的宽度

当我使用 getResources().getDisplayMetrics()(或任何类似方法)检查​​宽度/高度时,它总是返回宽度

根据我看到的值,在 2 种情况下,宽度/高度可能会交换它们的值。 (w:1920,h:1080 预览尺寸。w:1080,h:1920 屏幕尺寸)。

那么它们有什么区别呢?请帮助我!

最佳答案

手机上的摄像头传统上是为设备的横向设计的。当设备以纵向放置时,我们使用 90° 旋转来正确显示相机框架。

详细解释如下: https://developer.android.com/training/camera/cameradirect.html#TaskOrientation

关于android - 为什么 camera2 支持的预览尺寸宽度总是大于高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684999/

相关文章:

android - ORMLite 加入查询和排序依据

android - 将 Parse 和 Facebook 集成到 Android 应用程序时出错

android - 如何使用 android.hardware.camera.external 在 android 中打开 USB 摄像头

Android Camera2 预览在风景中旋转 90 度

唤醒屏幕时不显示 Android Activity 且锁定屏幕不禁用

java - Android 输入流。读取缓冲区直到特定字符

android - 使用android在Parse中插入多个数据

Android Camera2 onCaptureStarted 回调

Android 应用程序应该在普通屏幕设备和平板电脑的 Playstore 中可见,并且应该在两者(屏幕分辨率)中显示完美

Android:如何检测手机何时处于 Activity 状态和空闲状态?