我想使用camera2 API全屏显示预览.我选择的相机尺寸为4160×3120(16:9),屏幕为1080×1920(9:16).因此,如果我想对预览进行正确缩放,则必须裁剪相机输出:
Rect zoomCrop = new Rect(0, 0, 1755, 3120);
captureRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCrop);
裁剪的预览的尺寸应为1755×3120,并且比例为9:16.预览仍然很努力.
题 :
我是否正确使用SCALER_CROP_REGION?如果没有,我应该如何使用它?
提前致谢
解决方法:
我一直在努力解决同样的问题,因为我想将摄像机预览流实现为方形TextureView.
使用SCALER_CROP_REGION似乎是解决纵横比不兼容的问题的明显场所,但是我认为该操作实际上不会改变结果的纵横比,因此它不能防止拉伸/翘曲行为. (the docs talk about this)
通过实现与Camera2Basic示例项目中的转换类似的转换,我已经取得了进展-参见Camera2BasicFragment中的configureConfigform函数.
使用这种视图级别的缩放矩阵,您可以在不更改视图大小的情况下管理摄像机预览的缩放/裁剪.