From 786ff4f4ca2374bdd9177f2e24b503d43e7a3b93 Mon Sep 17 00:00:00 2001 From: liyujie <2352380935@qq.com> Date: Thu, 28 Aug 2025 12:04:21 +0000 Subject: [PATCH] [4/4]解决USB摄像头打开相机预览界面绿屏 --- android/packages/apps/Camera2/src/com/android/camera/settings/ResolutionSetting.java | 22 +++++++++++++++++++--- 1 files changed, 19 insertions(+), 3 deletions(-) diff --git a/android/packages/apps/Camera2/src/com/android/camera/settings/ResolutionSetting.java b/android/packages/apps/Camera2/src/com/android/camera/settings/ResolutionSetting.java old mode 100755 new mode 100644 index 964b970..3ea3d3f --- a/android/packages/apps/Camera2/src/com/android/camera/settings/ResolutionSetting.java +++ b/android/packages/apps/Camera2/src/com/android/camera/settings/ResolutionSetting.java @@ -144,7 +144,6 @@ pictureSize.width() > 0 && pictureSize.height() > 0; if (!isPictureSizeSettingSet || isPictureSizeBlacklisted || !isPictureSizeFromSettingsValid) { - final Rational aspectRatio = ResolutionUtil.ASPECT_RATIO_4x3; OneCameraCharacteristics cameraCharacteristics = mOneCameraManager.getOneCameraCharacteristics(cameraId); @@ -153,8 +152,25 @@ ResolutionUtil.filterBlackListedSizes( cameraCharacteristics.getSupportedPictureSizes(ImageFormat.JPEG), blacklist); - final Size fallbackPictureSize = - ResolutionUtil.getLargestPictureSize(aspectRatio, supportedPictureSizes); + for (Size size: supportedPictureSizes) { + Log.v(TAG, "supportedPictureSizes size w = " + size.getWidth() +" h = " + size.getHeight()); + } + + //provide 4x3 and 16x9 selections, compare them and choose larger one. + //The chosen size must achieve 16bit aligned requirement. + Size fallbackPictureSize; + Size LargestPictureSize_4x3 = + ResolutionUtil.getLargestPictureSize(ResolutionUtil.ASPECT_RATIO_4x3, + supportedPictureSizes); + Size LargestPictureSize_16x9 = + ResolutionUtil.getLargestPictureSize(ResolutionUtil.ASPECT_RATIO_16x9, + supportedPictureSizes); + if (LargestPictureSize_4x3.getWidth() > LargestPictureSize_16x9.getWidth()) { + fallbackPictureSize = LargestPictureSize_4x3; + } else { + fallbackPictureSize = LargestPictureSize_16x9; + } + mSettingsManager.set( SettingsManager.SCOPE_GLOBAL, pictureSizeSettingKey, -- Gitblit v1.6.2