android 动态设置比重,如何将android camera2设置为18.5:9的比例

本文探讨了在Samsung Note8手机上如何调整Camera2 API以实现2220x1080全屏预览和拍照,解决因分辨率差异导致的图像变形问题,提供了解决方案和关键代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我尝试在Samsung Note 8上将camera2应用到我的应用程序,然而,预览中的图像会变形 .

预览尺寸:2220x1080(比例18.5:9)

相机尺寸:1920x1080(比例16:9)

它似乎适合从1920x1080到2220x1080的图像大小

如何全屏预览和捕捉图像(2220x1080)?

public void createCameraPreviewSession() {

try {

SurfaceTexture texture = this.getSurfaceTexture();

assert texture != null;

texture.setDefaultBufferSize(previewSize.getWidth(), previewSize.getHeight());

Surface surface = new Surface(texture);

previewBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);

previewBuilder.addTarget(surface);

cameraDevice.createCaptureSession(Arrays.asList(surface, reader.getSurface()),

new CameraCaptureSession.StateCallback() {

@Override

public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {

if (null == cameraDevice) {

return;

}

previewSession = cameraCaptureSession;

thread = new HandlerThread("CameraPreview");

thread.start();

backgroundHandler = new Handler(thread.getLooper());

try {

previewBuilder.set(CaptureRequest.CONTROL_AF_MODE,CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);

previewSession.setRepeatingRequest(previewBuilder.build(), null, backgroundHandler);

} catch (CameraAccessException e) {

e.printStackTrace();

}

}

@Override

public void onConfigureFailed(

@NonNull CameraCaptureSession cameraCaptureSession) {

}

}, null

);

} catch (CameraAccessException e) {

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值