繁体   English   中英

如何使用camera2获取全屏textureview?

[英]How to get fullscreen textureview using camera2?

我正在尝试获取相机的全屏预览。 我通读了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. 到目前为止,这是我所了解的。 如果我的理解有误,请纠正我:

  1. 纹理视图和预览缓冲区的纵横比必须相同。 它们的分辨率可以不同,但​​是如果您不希望预览看起来失真,则纵横比必须相同。

  2. 您应该将纹理视图的缓冲区大小设置为最佳选择的预览大小。 camera2basic演示似乎通过行texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()来确认这一点。

我的问题是,一旦您将纹理视图的纵横比和大小与预览设置为相同,如何缩放纹理视图以使其适合全屏显示?

camera2basic演示的configureTransform方法似乎将TextureView转换为预览大小,但未使其全屏显示。 如何计算正确的比例因子以使TextureView全屏显示?

您可以仅使TextureView填满Activity布局中的屏幕。 然后,您需要调整configureTransform()方法以解决全屏TextureView和最接近纵横预览尺寸之间的纵横比差异。 基本上,您需要实现通常的信箱或信箱装箱效果。

当然,如果确实有匹配的宽高比,则可以直接使用它,但这不太可能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM