diff options
author | Michael Kolb <kolby@google.com> | 2013-04-19 16:21:24 -0700 |
---|---|---|
committer | Michael Kolb <kolby@google.com> | 2013-04-22 10:23:34 -0700 |
commit | f465110e4b8ed787589e052e5ac746c588c5ac8f (patch) | |
tree | 93bd8ff426e419c0f62ea43115ec6da5db3a6ab9 /src/com | |
parent | 2429727fc3e751edec61042846ae268ec70ea2e6 (diff) | |
download | android_packages_apps_Snap-f465110e4b8ed787589e052e5ac746c588c5ac8f.tar.gz android_packages_apps_Snap-f465110e4b8ed787589e052e5ac746c588c5ac8f.tar.bz2 android_packages_apps_Snap-f465110e4b8ed787589e052e5ac746c588c5ac8f.zip |
More menu fixes
Bug: 8660834
Add label dropshadow, reposition fixed menu
Adjust dead zone and angle
Change-Id: I7d62c03bcdcdec6268ef805f56114327f471b6d7
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/camera/drawable/TextDrawable.java | 26 | ||||
-rw-r--r-- | src/com/android/camera/ui/PieRenderer.java | 11 |
2 files changed, 29 insertions, 8 deletions
diff --git a/src/com/android/camera/drawable/TextDrawable.java b/src/com/android/camera/drawable/TextDrawable.java index ac5f1ce92..60d8719c4 100644 --- a/src/com/android/camera/drawable/TextDrawable.java +++ b/src/com/android/camera/drawable/TextDrawable.java @@ -21,6 +21,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Paint; +import android.graphics.Typeface; import android.graphics.Paint.Align; import android.graphics.Rect; import android.graphics.drawable.Drawable; @@ -36,6 +37,7 @@ public class TextDrawable extends Drawable { private CharSequence mText; private int mIntrinsicWidth; private int mIntrinsicHeight; + private boolean mUseDropShadow; public TextDrawable(Resources res) { this(res, ""); @@ -43,9 +45,7 @@ public class TextDrawable extends Drawable { public TextDrawable(Resources res, CharSequence text) { mText = text; - mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - mPaint.setColor(DEFAULT_COLOR); - mPaint.setTextAlign(Align.CENTER); + updatePaint(); float textSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, DEFAULT_TEXTSIZE, res.getDisplayMetrics()); mPaint.setTextSize(textSize); @@ -53,6 +53,21 @@ public class TextDrawable extends Drawable { mIntrinsicHeight = mPaint.getFontMetricsInt(null); } + private void updatePaint() { + if (mPaint == null) { + mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + } + mPaint.setColor(DEFAULT_COLOR); + mPaint.setTextAlign(Align.CENTER); + if (mUseDropShadow) { + mPaint.setTypeface(Typeface.DEFAULT_BOLD); + mPaint.setShadowLayer(10, 0, 0, 0xff000000); + } else { + mPaint.setTypeface(Typeface.DEFAULT); + mPaint.setShadowLayer(0, 0, 0, 0); + } + } + public void setText(CharSequence txt) { mText = txt; if (txt == null) { @@ -73,6 +88,11 @@ public class TextDrawable extends Drawable { } } + public void setDropShadow(boolean shadow) { + mUseDropShadow = shadow; + updatePaint(); + } + @Override public int getOpacity() { return mPaint.getAlpha(); diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java index 03c995cb4..bd3c2f76a 100644 --- a/src/com/android/camera/ui/PieRenderer.java +++ b/src/com/android/camera/ui/PieRenderer.java @@ -77,7 +77,7 @@ public class PieRenderer extends OverlayRenderer private static final int MSG_OPENSUBMENU = 2; protected static float CENTER = (float) Math.PI / 2; - protected static float RAD20 = (float)(Math.PI /9); // 20 degrees + protected static float RAD24 = (float)(24 * Math.PI / 180); protected static final float SWEEP_SLICE = 0.14f; protected static final float SWEEP_ARC = 0.23f; @@ -220,6 +220,7 @@ public class PieRenderer extends OverlayRenderer mArcRadius = res.getDimensionPixelSize(R.dimen.pie_arc_radius); mArcOffset = res.getDimensionPixelSize(R.dimen.pie_arc_offset); mLabel = new TextDrawable(res); + mLabel.setDropShadow(true); mDeadZone = res.getDimensionPixelSize(R.dimen.pie_deadzone_width); mAngleZone = res.getDimensionPixelSize(R.dimen.pie_anglezone_width); } @@ -340,7 +341,7 @@ public class PieRenderer extends OverlayRenderer private void resetPieCenter() { mPieCenterX = mCenterX; - mPieCenterY = mCenterY + mCenterY / 3; + mPieCenterY = (int) (getHeight() - 2.5f * mDeadZone); } private void layoutPie() { @@ -413,10 +414,10 @@ public class PieRenderer extends OverlayRenderer private float getCenterAngle() { float center = CENTER; if (mPieCenterX < mDeadZone + mAngleZone) { - center = CENTER - (mAngleZone - mPieCenterX + mDeadZone) * RAD20 + center = CENTER - (mAngleZone - mPieCenterX + mDeadZone) * RAD24 / (float) mAngleZone; } else if (mPieCenterX > getWidth() - mDeadZone - mAngleZone) { - center = CENTER + (mPieCenterX - (getWidth() - mDeadZone - mAngleZone)) * RAD20 + center = CENTER + (mPieCenterX - (getWidth() - mDeadZone - mAngleZone)) * RAD24 / (float) mAngleZone; } return center; @@ -757,6 +758,7 @@ public class PieRenderer extends OverlayRenderer private void openCurrentItem() { if ((mCurrentItem != null) && mCurrentItem.hasItems()) { mOpen.add(mCurrentItem); + layoutLabel(getLevel()); mOpening = true; if (mFadeIn != null) { mFadeIn.cancel(); @@ -774,7 +776,6 @@ public class PieRenderer extends OverlayRenderer mXFade = null; ci.setSelected(false); mOpening = false; - mLabel.setText(""); } @Override |