diff options
author | Santhosh Kumar H E <skhara@codeaurora.org> | 2013-11-14 20:18:57 +0530 |
---|---|---|
committer | Santhosh Kumar H E <skhara@codeaurora.org> | 2013-11-14 20:28:37 +0530 |
commit | ea8e0398360d951288fce6f06c3c7a54cafd5917 (patch) | |
tree | ee452cff2af105a59ac4316301b7f4bb3b675126 /src/com/android/camera/ui/PieRenderer.java | |
parent | 77fc9f7bd9c94ed673d847b71d681c14c3f07177 (diff) | |
download | android_packages_apps_Snap-ea8e0398360d951288fce6f06c3c7a54cafd5917.tar.gz android_packages_apps_Snap-ea8e0398360d951288fce6f06c3c7a54cafd5917.tar.bz2 android_packages_apps_Snap-ea8e0398360d951288fce6f06c3c7a54cafd5917.zip |
Consider layout width for pie menu arc radius
Pie renderer arc radius was always constant and read from resource
dimensions, irrespective of the screen width. Hence when there are
more options, some of the options were getting rendered beyond the
screen.
In this code the value from dimensions is saved to a separate
variable. During each layout change maximum value which can be
rendered is set as arc radius.
Change-Id: I893685d0e57c839ccbb96826c01208fa581fa7cc
CRs-Fixed: 568052
Diffstat (limited to 'src/com/android/camera/ui/PieRenderer.java')
-rw-r--r-- | src/com/android/camera/ui/PieRenderer.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java index 3967f7946..008bc40ca 100644 --- a/src/com/android/camera/ui/PieRenderer.java +++ b/src/com/android/camera/ui/PieRenderer.java @@ -114,7 +114,7 @@ public class PieRenderer extends OverlayRenderer private int mPieCenterX; private int mPieCenterY; private int mSliceRadius; - private int mArcRadius; + private int mArcRadius, mMaxArcRadius; private int mArcOffset; private int mDialAngle; @@ -221,6 +221,7 @@ public class PieRenderer extends OverlayRenderer mMenuArcPaint.setStyle(Paint.Style.STROKE); mSliceRadius = res.getDimensionPixelSize(R.dimen.pie_item_radius); mArcRadius = res.getDimensionPixelSize(R.dimen.pie_arc_radius); + mMaxArcRadius = mArcRadius; mArcOffset = res.getDimensionPixelSize(R.dimen.pie_arc_offset); mLabel = new TextDrawable(res); mLabel.setDropShadow(true); @@ -348,6 +349,12 @@ public class PieRenderer extends OverlayRenderer mCenterX = (r - l) / 2; mCenterY = (b - t) / 2; + int layoutWidth = r - l; + if( (layoutWidth > 0) && ((mMaxArcRadius + mCenterX) > layoutWidth) ){ + mArcRadius = layoutWidth - mCenterX; + } else { + mArcRadius = mMaxArcRadius; + } mFocusX = mCenterX; mFocusY = mCenterY; resetPieCenter(); |