全屏预览camera2Basic示例工程

Full screen preview camera2Basic Example Project

我正在尝试修改 Google 的 camera2Basic 示例代码。我删除了包含 "Picture" 和 "Info" 按钮的 <FrameLayout/> 以尝试使 <TextureView/> 全屏显示。然而,预览并没有填满整个屏幕,它下面仍然有一个黑条。我相信这与它附带的 AutoFitTextureView 有关,但由于他们没有提供任何关于它如何工作的文档,我无法对其进行修改。

我之前在我的 Galaxy Note 5 上注意到了这个完全相同的问题,我相信这与他们设置纵横比的方式有关 - 这个 API 显然有一些限制(或者只是记录不完整).我通过不在 AutoFitTextureView 上设置纵横比来修复它。

特别是在这个例子中,在方法 setCameraOutput(int width, int height) 中,只需删除这些代码行(在你的例子中是第 574 - 580 行):

if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
    mTextureView.setAspectRatio(mPreviewSize.getWidth(),mPreviewSize.getHeight());
} else {
    mTextureView.setAspectRatio(mPreviewSize.getHeight(),mPreviewSize.getWidth());
}

我相信在示例中,他们试图限制捕获区域,这可能会导致您看到黑条(可能是因为您构建的设备比开发人员使用的设备更大)。