summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2013-05-01 13:28:24 -0700
committerMichael Kolb <kolby@google.com>2013-05-01 14:23:29 -0700
commitb0da79fe069d740566663120818f9ed13a706890 (patch)
tree318ae12a658fffac3781b47574c0fd1141a6f041
parent78a5b224eca3c702f4ecf8abd072779e32e26641 (diff)
downloadandroid_packages_apps_Snap-b0da79fe069d740566663120818f9ed13a706890.tar.gz
android_packages_apps_Snap-b0da79fe069d740566663120818f9ed13a706890.tar.bz2
android_packages_apps_Snap-b0da79fe069d740566663120818f9ed13a706890.zip
Fix layout and preview for tablets
Bug: 8253060 Make controls full screen, and layout according to required size Change-Id: I725547041264457d85d73d470d25caa5cb2cf783
-rw-r--r--src/com/android/camera/ui/CameraControls.java34
1 files changed, 25 insertions, 9 deletions
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);