summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/util/CameraUtil.java
diff options
context:
space:
mode:
authorLikai Ding <likaid@codeaurora.org>2014-12-18 23:25:22 +0800
committerLikai Ding <likaid@codeaurora.org>2015-01-08 17:58:23 +0800
commit37c3c7cc832adbd8b78fa0a3e1f8d074111638d9 (patch)
tree3600024572e813303d01bdcec417ed271762cb76 /src/com/android/camera/util/CameraUtil.java
parentcc56779da62644898eb319d4b296f69d6d820013 (diff)
downloadandroid_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.java32
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;
+ }
+ }
}