diff options
author | Likai Ding <likaid@codeaurora.org> | 2014-12-18 23:25:22 +0800 |
---|---|---|
committer | Likai Ding <likaid@codeaurora.org> | 2015-01-08 17:58:23 +0800 |
commit | 37c3c7cc832adbd8b78fa0a3e1f8d074111638d9 (patch) | |
tree | 3600024572e813303d01bdcec417ed271762cb76 /src/com/android/camera/util/CameraUtil.java | |
parent | cc56779da62644898eb319d4b296f69d6d820013 (diff) | |
download | android_packages_apps_Snap-37c3c7cc832adbd8b78fa0a3e1f8d074111638d9.tar.gz android_packages_apps_Snap-37c3c7cc832adbd8b78fa0a3e1f8d074111638d9.tar.bz2 android_packages_apps_Snap-37c3c7cc832adbd8b78fa0a3e1f8d074111638d9.zip |
SnapdragonCamera: support 4:3 preview on 16:9 screen
When preview is set to 4:3 on a 16:9 screen, resize SurfaceView to 4:3
and cover other parts of the screen. Otherwise camera controls have
a semi-transparent background.
Change-Id: Icfbe6318b6a9de9a988468078b474e842f6ddd8c
Diffstat (limited to 'src/com/android/camera/util/CameraUtil.java')
-rw-r--r-- | src/com/android/camera/util/CameraUtil.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 60d4f065c..08ce84d87 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -120,6 +120,10 @@ public class CameraUtil { /** Has to be in sync with the receiving MovieActivity. */ public static final String KEY_TREAT_UP_AS_BACK = "treat-up-as-back"; + public static final int RATIO_UNKNOWN = 0; + public static final int RATIO_16_9 = 1; + public static final int RATIO_4_3 = 2; + public static boolean isSupported(String value, List<String> supported) { return supported == null ? false : supported.indexOf(value) >= 0; } @@ -1067,4 +1071,32 @@ public class CameraUtil { public static boolean volumeKeyShutterDisable(Context context) { return context.getResources().getBoolean(R.bool.volume_key_shutter_disable); } + + public static int determineRatio(int width, int height) { + int s = width, l = height; + if (width > height) { + l = width; + s = height; + } + if (l * 3 == s * 4) { + return RATIO_4_3; + } else if (l * 9 == s * 16) { + return RATIO_16_9; + } else { + return RATIO_UNKNOWN; + } + } + + public static int determineRatio(float ratio) { + if (ratio < 1) { + ratio = 1 / ratio; + } + if (ratio > 1.33f && ratio < 1.34f) { + return RATIO_4_3; + } else if (ratio > 1.77f && ratio < 1.78f) { + return RATIO_16_9; + } else { + return RATIO_UNKNOWN; + } + } } |