HarmonyOS鸿蒙Next相机纵向、横向拉伸问题该如何处理?

HarmonyOS鸿蒙Next相机纵向、横向拉伸问题该如何处理? 下载 示例代码 后,运行到折叠屏上,如下图:

折叠时画面纵向拉伸,展开时横向拉伸,在体验上稍有不适。请教下代码中如何配置能处理这一现象呢

4 回复
楼主看下面的方案能不能帮到你:

自定义相机预览变形需要在surfaceProvider回调surfaceCreated时设置尺寸,以当前控件宽高为准,如以下代码所示:

```java
surfaceCreated(SurfaceOps surfaceOps) {
    surfaceOps.setFixedSize(getHeight(), getWidth());
    = surfaceOps.getSurface();
    ...
}

竖屏拍照可以设置照片角度,如以下代码所示:

// 调用拍照
public void capture() {
    // 获取拍照配置模板
    FrameConfig.Builder pictureFrameConfigBuilder =
        cameraDevice.getFrameConfigBuilder(Camera.FrameConfigType.FRAME_CONFIG_PICTURE);
    // 配置拍照surface
    pictureFrameConfigBuilder.addSurface(imageReceiver.getRecevingSurface());
    // 设置照片角度
    pictureFrameConfigBuilder.setImageRotation(90);
    try {
        // 启动拍照
        cameraDevice.triggerSingleCapture(pictureFrameConfigBuilder.build());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

更多关于HarmonyOS鸿蒙Next相机纵向、横向拉伸问题该如何处理?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


欢迎开发小伙伴们进来帮帮楼主

在HarmonyOS鸿蒙Next中,相机纵向或横向拉伸问题通常与设备的屏幕分辨率、相机预览的宽高比以及应用布局设置有关。首先,确保相机预览的宽高比与设备屏幕的宽高比一致。可以通过CameraConfig类中的setPreviewSize方法设置预览尺寸,使其与屏幕尺寸匹配。其次,检查应用布局文件,确保SurfaceViewTextureView的宽高比与相机预览的宽高比一致。如果使用ConstraintLayout,可以通过设置layout_constraintDimensionRatio属性来保持宽高比。此外,确保在Camera初始化时正确设置Camera.Parameters中的setPreviewSize,以避免预览图像被拉伸。如果问题仍然存在,可以尝试在onPreviewFrame回调中手动调整图像数据,确保其与屏幕尺寸匹配。

在HarmonyOS鸿蒙Next中,相机纵向或横向拉伸问题通常与设备屏幕比例或应用适配有关。建议首先检查相机应用的设置,确保其支持当前屏幕比例。若问题持续,尝试更新相机应用或系统至最新版本,以确保兼容性。此外,重启设备或重置相机设置也可能解决问题。如仍无法解决,建议联系华为客服获取进一步技术支持。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!