我有一个正在开发的应用程序,它使用设备上的前置摄像头。我正在尝试通过获取支持的预览尺寸列表并循环浏览它们来寻找一个非常接近的预览尺寸。我为此编写的方法与操作系统自己的相机应用程序中的方法基本相同。该方法工作正常,正是我想要的,这不是我在这里的原因。
我的相机预览在某些设备上看起来明显偏斜,我遇到了问题;压缩或拉伸图像的预览。我不知道为什么会这样,所以我逐步浏览了它,查看了我的前置摄像头可用的所有支持的预览尺寸,发现只有 2 个,而且它们都不是可用的正确方面. 我的 SurfaceHolder.Callback 类中的“surfaceChanged”方法报告前置摄像头的宽度和高度为 762x480,但两个支持的预览尺寸(通过 cam.getParameters().getSupportedPreviewSizes() 获得)都在对面:480x800、320x640。
有了这些作为唯一的选择,似乎不可能预览没有倾斜的前置摄像头。我知道在 2.3 或更低版本中,可以将任意值用于宽度和高度,而不考虑支持的尺寸,但我正在尝试让我的应用程序也适用于较新版本的操作系统。如何使预览看起来正确?