From f2c86c128401cf92a2e5b351b32dc6f906eed412 Mon Sep 17 00:00:00 2001 From: Michael Kolb Date: Wed, 1 May 2013 13:28:24 -0700 Subject: Fix layout and preview for tablets Bug: 8253060 Make controls full screen, and layout according to required size Change-Id: I725547041264457d85d73d470d25caa5cb2cf783 --- res/layout-land/camera_controls.xml | 4 ++-- res/layout-port/camera_controls.xml | 4 ++-- res/layout/camera_main.xml | 4 +--- res/values-sw600dp-land/styles.xml | 21 ----------------- res/values-sw600dp-port/styles.xml | 21 ----------------- res/values-sw600dp/dimens.xml | 3 ++- res/values/dimens.xml | 1 + src/com/android/camera/ui/CameraControls.java | 34 ++++++++++++++++++++------- 8 files changed, 33 insertions(+), 59 deletions(-) delete mode 100644 res/values-sw600dp-land/styles.xml delete mode 100644 res/values-sw600dp-port/styles.xml diff --git a/res/layout-land/camera_controls.xml b/res/layout-land/camera_controls.xml index 04841a013..96f593ace 100644 --- a/res/layout-land/camera_controls.xml +++ b/res/layout-land/camera_controls.xml @@ -16,8 +16,8 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" > + android:layout_width="match_parent" + android:layout_height="match_parent" > - + \ No newline at end of file diff --git a/res/values-sw600dp-land/styles.xml b/res/values-sw600dp-land/styles.xml deleted file mode 100644 index 12e45a9d1..000000000 --- a/res/values-sw600dp-land/styles.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/res/values-sw600dp-port/styles.xml b/res/values-sw600dp-port/styles.xml deleted file mode 100644 index d6eca6602..000000000 --- a/res/values-sw600dp-port/styles.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml index 59d86d900..5ec2f19b4 100644 --- a/res/values-sw600dp/dimens.xml +++ b/res/values-sw600dp/dimens.xml @@ -21,5 +21,6 @@ @dimen/onscreen_indicators_height_large -33dp 80dip - 16dip + 16dip + 520dip diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 57194167e..a1e237002 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -100,4 +100,5 @@ 48dip 16dip 16dip + 0dip diff --git a/src/com/android/camera/ui/CameraControls.java b/src/com/android/camera/ui/CameraControls.java index e5b90dd51..f7af52c28 100644 --- a/src/com/android/camera/ui/CameraControls.java +++ b/src/com/android/camera/ui/CameraControls.java @@ -68,15 +68,31 @@ public class CameraControls extends RotatableLayout { public void onLayout(boolean changed, int l, int t, int r, int b) { int orientation = getResources().getConfiguration().orientation; int rotation = Util.getDisplayRotation((Activity) getContext()); + int size = getResources().getDimensionPixelSize(R.dimen.camera_controls_size); rotation = correctRotation(rotation, orientation); super.onLayout(changed, l, t, r, b); Rect shutter = new Rect(); + topRight(mPreview, l, t, r, b, orientation, rotation); + if (size > 0) { + // restrict controls to size + switch (rotation) { + case 0: + case 180: + l = (l + r - size) / 2; + r = l + size; + break; + case 90: + case 270: + t = (t + b - size) / 2; + b = t + size; + break; + } + } center(mShutter, l, t, r, b, orientation, rotation, shutter); center(mBackgroundView, l, t, r, b, orientation, rotation, new Rect()); toLeft(mSwitcher, l, t, r, b, orientation, rotation, shutter); toRight(mMenu, l, t, r, b, orientation, rotation, shutter); toRight(mIndicators, l, t, r, b, orientation, rotation, shutter); - topRight(mPreview, l, t, r, b, orientation, rotation); View retake = findViewById(R.id.btn_retake); if (retake != null) { Rect retakeRect = new Rect(); @@ -106,8 +122,8 @@ public class CameraControls extends RotatableLayout { switch (rotation) { case 0: // phone portrait; controls bottom - result.left = (r - l) / 2 - tw / 2 + lp.leftMargin; - result.right = (r - l) / 2 + tw / 2 - lp.rightMargin; + result.left = (r + l) / 2 - tw / 2 + lp.leftMargin; + result.right = (r + l) / 2 + tw / 2 - lp.rightMargin; result.bottom = b - lp.bottomMargin; result.top = b - th + lp.topMargin; break; @@ -115,13 +131,13 @@ public class CameraControls extends RotatableLayout { // phone landscape: controls right result.right = r - lp.rightMargin; result.left = r - tw + lp.leftMargin; - result.top = (b - t) / 2 - th / 2 + lp.topMargin; - result.bottom = (b - t) / 2 + th / 2 - lp.bottomMargin; + result.top = (b + t) / 2 - th / 2 + lp.topMargin; + result.bottom = (b + t) / 2 + th / 2 - lp.bottomMargin; break; case 180: // phone upside down: controls top - result.left = (r - l) / 2 - tw / 2 + lp.leftMargin; - result.right = (r - l) / 2 + tw / 2 - lp.rightMargin; + result.left = (r + l) / 2 - tw / 2 + lp.leftMargin; + result.right = (r + l) / 2 + tw / 2 - lp.rightMargin; result.top = t + lp.topMargin; result.bottom = t + th - lp.bottomMargin; break; @@ -129,8 +145,8 @@ public class CameraControls extends RotatableLayout { // reverse landscape: controls left result.left = l + lp.leftMargin; result.right = l + tw - lp.rightMargin; - result.top = (b - t) / 2 - th / 2 + lp.topMargin; - result.bottom = (b - t) / 2 + th / 2 - lp.bottomMargin; + result.top = (b + t) / 2 - th / 2 + lp.topMargin; + result.bottom = (b + t) / 2 + th / 2 - lp.bottomMargin; break; } v.layout(result.left, result.top, result.right, result.bottom); -- cgit v1.2.3