我正在尝试全屏预览相机。我仔细阅读了camera2的文档,其中说Each Surface has to be pre-configured with an appropriate size and format (if applicable) to match the sizes and formats available from the camera device.
这是我目前所理解的。如果我的理解有误,请纠正我:
纹理视图和预览缓冲区需要具有相同的宽高比。它们可以是不同的分辨率,但如果您不希望预览看起来扭曲,则宽高比必须相同。
您应该将纹理视图的缓冲区大小设置为最佳选择的预览大小。 camera2basic演示似乎用行texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()
确认了这一点。
我的问题是,一旦你将纹理视图的宽高比和大小与预览相匹配,你如何缩放纹理视图以使其适合全屏?
camera2basic演示的configureTransform
方法似乎将TextureView转换为预览大小,但不是全屏。如何计算正确的比例因子以使TextureView全屏?
答案 0 :(得分:0)
您可以让您的TextureView填充活动布局中的屏幕。然后,您需要调整configureTransform()方法以考虑全屏TextureView和最近方面预览大小之间的宽高比差异;基本上你需要实现通常的字母或柱子拳击效果。
当然,如果恰好有匹配的宽高比,您可以直接使用它,但这不太可能。