From a301c539d76fe1905a286a4a15b1c59e26f64364 Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 23 Feb 2016 15:19:23 +1000 Subject: Snap: Fix incorrect preview layout surface size in landscape mode If height is smaller than width it means that orientation sets to horizontal and we should decrease width instead height to get normal preview size. Change-Id: Ifa211ad2604fb730fb85b01ae1d7c93c9b7aa2ce --- src/com/android/camera/PhotoUI.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index d2827fce4..5c13a7573 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -383,8 +383,13 @@ public class PhotoUI implements PieListener, } else { float width = mMaxPreviewWidth, height = mMaxPreviewHeight; if (width == 0 || height == 0) return; - if(mScreenRatio == CameraUtil.RATIO_4_3) - height -= (mTopMargin + mBottomMargin); + if (mScreenRatio == CameraUtil.RATIO_4_3) { + if (height > width) { + height -= (mTopMargin + mBottomMargin); + } else { + width -= (mTopMargin + mBottomMargin); + } + } if (mOrientationResize) { scaledTextureWidth = height * mAspectRatio; if (scaledTextureWidth > width) { @@ -403,7 +408,7 @@ public class PhotoUI implements PieListener, scaledTextureHeight = height; } } else { - if(Math.max(height, width * mAspectRatio) > height) { + if (Math.max(height, width * mAspectRatio) > height) { scaledTextureWidth = height / mAspectRatio; scaledTextureHeight = height; } else { @@ -424,7 +429,7 @@ public class PhotoUI implements PieListener, lp = new FrameLayout.LayoutParams((int) scaledTextureWidth, (int) scaledTextureHeight, Gravity.CENTER); } - if(mScreenRatio == CameraUtil.RATIO_4_3) { + if (mScreenRatio == CameraUtil.RATIO_4_3) { lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP; lp.setMargins(0, mTopMargin, 0, mBottomMargin); } -- cgit v1.2.3