首页 文章

如何使用camera2获取全屏纹理视图?

提问于
浏览
0

我试图获得相机的全屏预览 . 我仔细阅读了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全屏?

1 回答

  • 0

    您可以让您的TextureView填充Activity的布局中的屏幕 . 然后,您需要调整configureTransform()方法以考虑全屏TextureView和最近方面预览大小之间的宽高比差异;基本上你需要实现通常的字母或柱子拳击效果 .

    当然,如果恰好有匹配的宽高比,您可以直接使用它,但这不太可能 .

相关问题