我使用的是带摄像头的 S3。尺寸为 720*1280 与屏幕尺寸相同。
但是,相机表面仅如下图所示,未覆盖全屏(长度方向是,但不是宽度方向)
我尝试设置
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface,
int width, int height) {
this.surface=surface;
cameraView.previewCreated();
cameraView.initPreview(width, height);
}
作为
cameraView.initPreview(720, 1280);
但效果微乎其微。
我的问题是,如何让它像相机应用程序一样扩展到全屏。这里发生了什么。
演示应用程序中出现相同的结果。在我的 HTC 中,结果更好,但仍然存在空间。
最佳答案
这正在按设计工作,尽管您想要的将在 0.6.0 版本中实现。
引用该项目即将发布的版本自述文件
:
CameraFragment
和 CameraView
的默认行为是显示整个
预览,由底层 Camera
API 提供。由于长宽比为
预览帧可能与CameraView
的纵横比不同,
这会产生“信箱”效果,背景将透过
两侧各有一个轴。
如果你想让预览完全填满CameraView
,代价是
裁剪掉一些实际的预览帧,让您的 CameraHost
从 useFullBleedPreview()
返回 true
。
请注意,本库拍摄的图片和视频不受
useFullBleedPreview()
。因此,如果 useFullBleedPreview()
返回 true
,则
图片或视频的边缘可能包含未包含的其他内容
在预览中可见。
对 useFullBleedPreview()
的支持将在库的 0.6.0 版本中提供,尽管它的源代码已推送到存储库并可在 master
中使用> 分支机构。欢迎您关注this issue以便进一步发展。
关于java - 显示相机预览未全屏显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21412219/