diff options
author | Michael Kolb <kolby@google.com> | 2013-04-10 08:50:51 -0700 |
---|---|---|
committer | Michael Kolb <kolby@google.com> | 2013-04-15 11:43:52 -0700 |
commit | 3d25de2e7bbf81d49b50be577923f7d99a0180de (patch) | |
tree | 15e7c919244f405e6e063dbadf432186fcb3dbb1 | |
parent | 4b6ea5bce9b68eea16eb8a0980501f671e7fbf44 (diff) | |
download | android_packages_apps_Gallery2-3d25de2e7bbf81d49b50be577923f7d99a0180de.tar.gz android_packages_apps_Gallery2-3d25de2e7bbf81d49b50be577923f7d99a0180de.tar.bz2 android_packages_apps_Gallery2-3d25de2e7bbf81d49b50be577923f7d99a0180de.zip |
Add menu labels
Bug: 8618169
Change-Id: Iea1ac7256450afd2870c144099459f32868c699f
-rw-r--r-- | res/values/arrays.xml | 35 | ||||
-rw-r--r-- | res/values/attrs.xml | 1 | ||||
-rw-r--r-- | res/values/strings.xml | 40 | ||||
-rw-r--r-- | res/xml/camera_preferences.xml | 9 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 4 | ||||
-rw-r--r-- | src/com/android/camera/ListPreference.java | 15 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 15 | ||||
-rw-r--r-- | src/com/android/camera/PieController.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/drawable/TextDrawable.java | 23 | ||||
-rw-r--r-- | src/com/android/camera/ui/PieItem.java | 9 | ||||
-rw-r--r-- | src/com/android/camera/ui/PieRenderer.java | 21 |
11 files changed, 168 insertions, 6 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml index fb3200391..57da3cb97 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -195,6 +195,12 @@ <item>macro</item> </string-array> + <string-array name="pref_camera_focusmode_labels" translatable="false"> + <item>@string/pref_camera_focusmode_label_auto</item> + <item>@string/pref_camera_focusmode_label_infinity</item> + <item>@string/pref_camera_focusmode_label_macro</item> + </string-array> + <!-- Camera Preferences flash mode dialog box entries --> <string-array name="pref_camera_flashmode_entries" translatable="false"> <item>@string/pref_camera_flashmode_entry_off</item> @@ -202,6 +208,12 @@ <item>@string/pref_camera_flashmode_entry_on</item> </string-array> + <string-array name="pref_camera_flashmode_labels" translatable="false"> + <item>@string/pref_camera_flashmode_label_off</item> + <item>@string/pref_camera_flashmode_label_auto</item> + <item>@string/pref_camera_flashmode_label_on</item> + </string-array> + <string-array name="pref_camera_flashmode_entryvalues" translatable="false"> <item>off</item> <item>auto</item> @@ -226,6 +238,11 @@ <item>@string/pref_camera_flashmode_entry_off</item> </string-array> + <string-array name="pref_camera_video_flashmode_labels" translatable="false"> + <item>@string/pref_camera_flashmode_label_on</item> + <item>@string/pref_camera_flashmode_label_off</item> + </string-array> + <string-array name="pref_camera_video_flashmode_entryvalues" translatable="false"> <item>torch</item> <item>off</item> @@ -270,6 +287,14 @@ <item>@string/pref_camera_whitebalance_entry_cloudy</item> </string-array> + <string-array name="pref_camera_whitebalance_labels" translatable="false"> + <item>@string/pref_camera_whitebalance_label_incandescent</item> + <item>@string/pref_camera_whitebalance_label_fluorescent</item> + <item>@string/pref_camera_whitebalance_label_auto</item> + <item>@string/pref_camera_whitebalance_label_daylight</item> + <item>@string/pref_camera_whitebalance_label_cloudy</item> + </string-array> + <string-array name="pref_camera_whitebalance_entryvalues" translatable="false"> <item>incandescent</item> <item>fluorescent</item> @@ -316,6 +341,11 @@ <item>@string/pref_camera_id_entry_front</item> </array> + <array name="camera_id_labels" translatable="false"> + <item>@string/pref_camera_id_label_back</item> + <item>@string/pref_camera_id_label_front</item> + </array> + <array name="camera_id_icons" translatable="false"> <item>@drawable/ic_menuselect_camera_facing_back</item> <item>@drawable/ic_menuselect_camera_facing_front</item> @@ -370,6 +400,11 @@ <item>@string/setting_on</item> </string-array> + <string-array name="pref_camera_hdr_labels" translatable="false"> + <item>@string/pref_camera_hdr_label_off</item> + <item>@string/pref_camera_hdr_label_on</item> + </string-array> + <string-array name="pref_camera_hdr_entryvalues" translatable="false"> <item>@string/setting_off_value</item> <item>@string/setting_on_value</item> diff --git a/res/values/attrs.xml b/res/values/attrs.xml index b901db770..cd849b62a 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -32,6 +32,7 @@ <attr name="defaultValue" format="string|reference" /> <attr name="entryValues" format="reference" /> <attr name="entries" format="reference" /> + <attr name="labels" format="reference" /> </declare-styleable> <declare-styleable name="IconIndicator"> <attr name="icons" format="reference" /> diff --git a/res/values/strings.xml b/res/values/strings.xml index 27663c946..7f8e083f5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -694,6 +694,11 @@ <string name="pref_camera_focusmode_entry_infinity">Infinity</string> <string name="pref_camera_focusmode_entry_macro">Macro</string> + <!-- Menu, focus mode labels [CHAR LIMIT=50] --> + <string name="pref_camera_focusmode_label_auto">AUTO</string> + <string name="pref_camera_focusmode_label_infinity">INFINITY</string> + <string name="pref_camera_focusmode_label_macro">MACRO</string> + <!-- Default flash mode setting.--> <string name="pref_camera_flashmode_default" translatable="false">auto</string> @@ -702,12 +707,19 @@ <!-- Settings screen, Flash mode title --> <string name="pref_camera_flashmode_title">Flash mode</string> + <!-- flash label [CHAR LIMIT=50] --> + <string name="pref_camera_flashmode_label">FLASH MODE</string> <!-- Settings screen, Flash mode dialog radio button choices --> <string name="pref_camera_flashmode_entry_auto">Auto</string> <string name="pref_camera_flashmode_entry_on">On</string> <string name="pref_camera_flashmode_entry_off">Off</string> + <!-- Menu, flash mode labels [CHAR LIMIT=50] --> + <string name="pref_camera_flashmode_label_auto">FLASH AUTO</string> + <string name="pref_camera_flashmode_label_on">FLASH ON</string> + <string name="pref_camera_flashmode_label_off">FLASH OFF</string> + <!-- Default videocamera flash mode setting.--> <string name="pref_camera_video_flashmode_default" translatable="false">off</string> @@ -716,6 +728,8 @@ <!-- Settings screen, white balance title --> <string name="pref_camera_whitebalance_title">White balance</string> + <!-- Menu, white balance label --> + <string name="pref_camera_whitebalance_label">WHITE BALANCE</string> <!-- Settings screen, White balance dialog radio button choices --> <string name="pref_camera_whitebalance_entry_auto">Auto</string> @@ -724,6 +738,13 @@ <string name="pref_camera_whitebalance_entry_fluorescent">Fluorescent</string> <string name="pref_camera_whitebalance_entry_cloudy">Cloudy</string> + <!-- Menu, White balance labels [CHAR LIMIT=50] --> + <string name="pref_camera_whitebalance_label_auto">AUTO</string> + <string name="pref_camera_whitebalance_label_incandescent">INCANDESCENT</string> + <string name="pref_camera_whitebalance_label_daylight">DAYLIGHT</string> + <string name="pref_camera_whitebalance_label_fluorescent">FLUORESCENT</string> + <string name="pref_camera_whitebalance_label_cloudy">CLOUDY</string> + <!-- Default scene mode setting. --> <string name="pref_camera_scenemode_default" translatable="false">auto</string> @@ -749,10 +770,22 @@ <!-- Exposure settings in preference --> <string name="pref_exposure_title">Exposure</string> <string name="pref_exposure_default" translatable="false">0</string> + <!-- menu label exposure compensation [CHAR LIMIT=50] --> + <string name="pref_exposure_label">EXPOSURE</string> <!-- Default HDR entry value --> <string name="pref_camera_hdr_default">@string/setting_off_value</string> + <!-- HDR label ON [CHAR LIMIT=60] --> + <string name="pref_camera_hdr_label_on">HDR OFF</string> + <!-- HDR label OFF [CHAR LIMIT=60] --> + <string name="pref_camera_hdr_label_off">HDR ON</string> + + <!-- switch camera label back [CHAR LIMIT=60] --> + <string name="pref_camera_id_label_back">FRONT CAMERA</string> + <!-- switch camera label front [CHAR LIMIT=60] --> + <string name="pref_camera_id_label_front">BACK CAMERA</string> + <!-- Dialog "OK" button. Dismisses dialog. --> <string name="dialog_ok">OK</string> @@ -1015,6 +1048,13 @@ CHAR LIMIT = NONE] --> <!-- Title for the albums tab [CHAR LIMIT=25] --> <string name="tab_albums">Albums</string> + <!-- Camera menu labels --> + + <!-- more options label [CHAR LIMIT=50] --> + <string name="camera_menu_more_label">MORE OPTIONS</string> + <!-- settings label [CHAR LIMIT=50] --> + <string name="camera_menu_settings_label">SETTINGS</string> + <!-- String indicating how many photos are in an album [CHAR LIMIT=15] --> <plurals name="number_of_photos"> <item quantity="one">%1$d photo</item> diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml index 741fb1f8c..a08dfa98a 100644 --- a/res/xml/camera_preferences.xml +++ b/res/xml/camera_preferences.xml @@ -24,7 +24,8 @@ camera:icons="@array/camera_flashmode_icons" camera:largeIcons="@array/camera_flashmode_largeicons" camera:entries="@array/pref_camera_flashmode_entries" - camera:entryValues="@array/pref_camera_flashmode_entryvalues" /> + camera:entryValues="@array/pref_camera_flashmode_entryvalues" + camera:labels="@array/pref_camera_flashmode_labels" /> <IconListPreference camera:key="pref_camera_exposure_key" camera:defaultValue="@string/pref_exposure_default" @@ -44,7 +45,8 @@ camera:icons="@array/whitebalance_icons" camera:largeIcons="@array/whitebalance_largeicons" camera:entries="@array/pref_camera_whitebalance_entries" - camera:entryValues="@array/pref_camera_whitebalance_entryvalues" /> + camera:entryValues="@array/pref_camera_whitebalance_entryvalues" + camera:labels="@array/pref_camera_whitebalance_labels" /> <RecordLocationPreference camera:key="pref_camera_recordlocation_key" camera:defaultValue="@string/pref_camera_recordlocation_default" @@ -63,6 +65,7 @@ camera:defaultValue="@array/pref_camera_focusmode_default_array" camera:title="@string/pref_camera_focusmode_title" camera:entries="@array/pref_camera_focusmode_entries" + camera:labels="@array/pref_camera_focusmode_labels" camera:entryValues="@array/pref_camera_focusmode_entryvalues" /> <IconListPreference camera:key="pref_camera_id_key" @@ -70,12 +73,14 @@ camera:title="@string/pref_camera_id_title" camera:icons="@array/camera_id_icons" camera:entries="@array/camera_id_entries" + camera:labels="@array/camera_id_labels" camera:largeIcons="@array/camera_id_largeicons" /> <ListPreference camera:key="pref_camera_hdr_key" camera:defaultValue="@string/pref_camera_hdr_default" camera:title="@string/pref_camera_scenemode_entry_hdr" camera:entries="@array/pref_camera_hdr_entries" + camera:labels="@array/pref_camera_hdr_labels" camera:entryValues="@array/pref_camera_hdr_entryvalues" /> <CountDownTimerPreference camera:key="pref_camera_timer_key" diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index d0d575c5f..ede4156c7 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -247,8 +247,10 @@ public class CameraSettings { // show only integer values for exposure compensation int maxValue = Math.min(3, (int) FloatMath.floor(max * step)); int minValue = Math.max(-3, (int) FloatMath.ceil(min * step)); + String explabel = mContext.getResources().getString(R.string.pref_exposure_label); CharSequence entries[] = new CharSequence[maxValue - minValue + 1]; CharSequence entryValues[] = new CharSequence[maxValue - minValue + 1]; + CharSequence labels[] = new CharSequence[maxValue - minValue + 1]; int[] icons = new int[maxValue - minValue + 1]; TypedArray iconIds = mContext.getResources().obtainTypedArray( R.array.pref_camera_exposure_icons); @@ -257,10 +259,12 @@ public class CameraSettings { StringBuilder builder = new StringBuilder(); if (i > 0) builder.append('+'); entries[maxValue - i] = builder.append(i).toString(); + labels[maxValue - i] = explabel + " " + builder.toString(); icons[maxValue - i] = iconIds.getResourceId(3 + i, 0); } exposure.setUseSingleIcon(true); exposure.setEntries(entries); + exposure.setLabels(labels); exposure.setEntryValues(entryValues); exposure.setLargeIconIds(icons); } diff --git a/src/com/android/camera/ListPreference.java b/src/com/android/camera/ListPreference.java index a29b19719..9ea2e34ec 100644 --- a/src/com/android/camera/ListPreference.java +++ b/src/com/android/camera/ListPreference.java @@ -40,6 +40,7 @@ public class ListPreference extends CameraPreference { private CharSequence[] mEntries; private CharSequence[] mEntryValues; + private CharSequence[] mLabels; private boolean mLoaded = false; public ListPreference(Context context, AttributeSet attrs) { @@ -68,6 +69,8 @@ public class ListPreference extends CameraPreference { setEntries(a.getTextArray(R.styleable.ListPreference_entries)); setEntryValues(a.getTextArray( R.styleable.ListPreference_entryValues)); + setLabels(a.getTextArray( + R.styleable.ListPreference_labels)); a.recycle(); } @@ -83,6 +86,10 @@ public class ListPreference extends CameraPreference { return mEntryValues; } + public CharSequence[] getLabels() { + return mLabels; + } + public void setEntries(CharSequence entries[]) { mEntries = entries == null ? new CharSequence[0] : entries; } @@ -91,6 +98,10 @@ public class ListPreference extends CameraPreference { mEntryValues = values == null ? new CharSequence[0] : values; } + public void setLabels(CharSequence labels[]) { + mLabels = labels == null ? new CharSequence[0] : labels; + } + public String getValue() { if (!mLoaded) { mValue = getSharedPreferences().getString(mKey, @@ -135,6 +146,10 @@ public class ListPreference extends CameraPreference { return mEntries[findIndexOfValue(getValue())].toString(); } + public String getLabel() { + return mLabels[findIndexOfValue(getValue())].toString(); + } + protected void persistStringValue(String value) { SharedPreferences.Editor editor = getSharedPreferences().edit(); editor.putString(mKey, value); diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index f5ba733c9..09c96b26a 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -17,6 +17,7 @@ package com.android.camera; import android.content.Context; +import android.content.res.Resources; import android.hardware.Camera.Parameters; import android.view.LayoutInflater; @@ -65,20 +66,26 @@ public class PhotoMenu extends PieController mPopup = null; mSecondPopup = null; PieItem item = null; + final Resources res = mActivity.getResources(); // flash if (group.findPreference(CameraSettings.KEY_FLASH_MODE) != null) { item = makeItem(CameraSettings.KEY_FLASH_MODE, POS_FLASH, 5); + item.setLabel(res.getString(R.string.pref_camera_flashmode_label)); mRenderer.addItem(item); } // exposure compensation if (group.findPreference(CameraSettings.KEY_EXPOSURE) != null) { item = makeItem(CameraSettings.KEY_EXPOSURE, POS_EXP, 5); + item.setLabel(res.getString(R.string.pref_exposure_label)); mRenderer.addItem(item); } // camera switcher if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) { item = makeItem(R.drawable.ic_switch_photo_facing_holo_light); + ListPreference lpref = group.findPreference(CameraSettings.KEY_CAMERA_ID); item.setPosition(POS_SWITCH, 5); + item.setLabel(lpref.getLabel()); + final PieItem fitem = item; item.setOnClickListener(new OnClickListener() { @Override public void onClick(PieItem item) { @@ -91,6 +98,7 @@ public class PhotoMenu extends PieController index = (index + 1) % values.length; int newCameraId = Integer .parseInt((String) values[index]); + fitem.setLabel(camPref.getLabel()); mListener.onCameraPickerClicked(newCameraId); } } @@ -99,8 +107,11 @@ public class PhotoMenu extends PieController } // hdr if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) { + ListPreference lp = group.findPreference(CameraSettings.KEY_CAMERA_HDR); item = makeItem(R.drawable.ic_hdr); + item.setLabel(lp.getLabel()); item.setPosition(POS_HDR, 5); + final PieItem fitem = item; item.setOnClickListener(new OnClickListener() { @Override public void onClick(PieItem item) { @@ -112,6 +123,7 @@ public class PhotoMenu extends PieController int index = (pref.findIndexOfValue(pref.getValue()) + 1) % 2; pref.setValueIndex(index); onSettingChanged(pref); + fitem.setLabel(pref.getLabel()); } } }); @@ -121,10 +133,12 @@ public class PhotoMenu extends PieController // more settings PieItem more = makeItem(R.drawable.ic_settings_holo_light); more.setPosition(POS_MORE, 5); + more.setLabel(res.getString(R.string.camera_menu_more_label)); mRenderer.addItem(more); // white balance if (group.findPreference(CameraSettings.KEY_WHITE_BALANCE) != null) { item = makeItem(CameraSettings.KEY_WHITE_BALANCE, POS_WB, 5); + item.setLabel(res.getString(R.string.pref_camera_whitebalance_label)); more.addItem(item); } // settings popup @@ -137,6 +151,7 @@ public class PhotoMenu extends PieController CameraSettings.KEY_TIMER_SOUND_EFFECTS, }; item = makeItem(R.drawable.ic_settings_holo_light); + item.setLabel(res.getString(R.string.camera_menu_settings_label)); item.setPosition(POS_SET, 5); item.setOnClickListener(new OnClickListener() { @Override diff --git a/src/com/android/camera/PieController.java b/src/com/android/camera/PieController.java index a9b8575ef..5ccab5e72 100644 --- a/src/com/android/camera/PieController.java +++ b/src/com/android/camera/PieController.java @@ -104,6 +104,7 @@ public class PieController { } PieItem item = makeItem(resid); item.setPosition(position, count); + item.setLabel(pref.getTitle().toUpperCase()); mPreferences.add(pref); mPreferenceMap.put(pref, item); int nOfEntries = pref.getEntries().length; @@ -116,6 +117,7 @@ public class PieController { inner = makeItem(pref.getEntries()[i]); } inner.setPosition(i, nOfEntries); + inner.setLabel(pref.getLabels()[i]); item.addItem(inner); final int index = i; inner.setOnClickListener(new OnClickListener() { diff --git a/src/com/android/camera/drawable/TextDrawable.java b/src/com/android/camera/drawable/TextDrawable.java index 2e86364e7..ac5f1ce92 100644 --- a/src/com/android/camera/drawable/TextDrawable.java +++ b/src/com/android/camera/drawable/TextDrawable.java @@ -37,6 +37,10 @@ public class TextDrawable extends Drawable { private int mIntrinsicWidth; private int mIntrinsicHeight; + public TextDrawable(Resources res) { + this(res, ""); + } + public TextDrawable(Resources res, CharSequence text) { mText = text; mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -49,11 +53,24 @@ public class TextDrawable extends Drawable { mIntrinsicHeight = mPaint.getFontMetricsInt(null); } + public void setText(CharSequence txt) { + mText = txt; + if (txt == null) { + mIntrinsicWidth = 0; + mIntrinsicHeight = 0; + } else { + mIntrinsicWidth = (int) (mPaint.measureText(mText, 0, mText.length()) + .5); + mIntrinsicHeight = mPaint.getFontMetricsInt(null); + } + } + @Override public void draw(Canvas canvas) { - Rect bounds = getBounds(); - canvas.drawText(mText, 0, mText.length(), - bounds.centerX(), bounds.centerY(), mPaint); + if (mText != null) { + Rect bounds = getBounds(); + canvas.drawText(mText, 0, mText.length(), + bounds.centerX(), bounds.centerY(), mPaint); + } } @Override diff --git a/src/com/android/camera/ui/PieItem.java b/src/com/android/camera/ui/PieItem.java index 6128e0422..6dbcb85d5 100644 --- a/src/com/android/camera/ui/PieItem.java +++ b/src/com/android/camera/ui/PieItem.java @@ -44,6 +44,7 @@ public class PieItem { private Path mPath; private OnClickListener mOnClickListener; private float mAlpha; + private CharSequence mLabel; // Gray out the view when disabled private static final float ENABLED_ALPHA = 1; @@ -59,6 +60,14 @@ public class PieItem { mEnabled = true; } + public void setLabel(CharSequence txt) { + mLabel = txt; + } + + public CharSequence getLabel() { + return mLabel; + } + public void setPosition(int pos, int count) { mPosition = pos; mCount = count; diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java index 0969e4e63..4374fa624 100644 --- a/src/com/android/camera/ui/PieRenderer.java +++ b/src/com/android/camera/ui/PieRenderer.java @@ -27,7 +27,6 @@ import android.graphics.PointF; import android.graphics.RectF; import android.os.Handler; import android.os.Message; -import android.util.Log; import android.view.MotionEvent; import android.view.ViewConfiguration; import android.view.animation.Animation; @@ -35,6 +34,7 @@ import android.view.animation.Animation.AnimationListener; import android.view.animation.LinearInterpolator; import android.view.animation.Transformation; +import com.android.camera.drawable.TextDrawable; import com.android.gallery3d.R; import java.util.ArrayList; @@ -133,6 +133,7 @@ public class PieRenderer extends OverlayRenderer private FadeOutAnimation mFadeOut; private volatile boolean mFocusCancelled; private PointF mPolar = new PointF(); + private TextDrawable mLabel; @@ -213,6 +214,7 @@ public class PieRenderer extends OverlayRenderer mSliceRadius = res.getDimensionPixelSize(R.dimen.pie_item_radius); mArcRadius = res.getDimensionPixelSize(R.dimen.pie_arc_radius); mArcOffset = res.getDimensionPixelSize(R.dimen.pie_arc_offset); + mLabel = new TextDrawable(res); } private PieItem getRoot() { @@ -269,6 +271,7 @@ public class PieRenderer extends OverlayRenderer } } } + mLabel.setText(""); mOpen.clear(); mOpen.add(root); layoutPie(); @@ -335,6 +338,15 @@ public class PieRenderer extends OverlayRenderer private void layoutPie() { layoutItems(0, getRoot().getItems()); + layoutLabel(0); + } + + private void layoutLabel(int level) { + int x = mPieCenterX; + int y = mArcCenterY - mArcRadius - (level + 2) * mRadiusInc; + int w = mLabel.getIntrinsicWidth(); + int h = mLabel.getIntrinsicHeight(); + mLabel.setBounds(x - w/2, y - h/2, x + w/2, y + h/2); } private void layoutItems(int level, List<PieItem> items) { @@ -480,6 +492,7 @@ public class PieRenderer extends OverlayRenderer for (PieItem item : getParent().getItems()) { drawItem(Math.max(0, mOpen.size() - 2), canvas, item, alpha); } + mLabel.draw(canvas); } if (hasOpenItem()) { int level = getLevel(); @@ -491,6 +504,7 @@ public class PieRenderer extends OverlayRenderer drawItem(level, canvas, inner, (mXFade != null) ? (1 - 0.5f * alpha) : 1); } } + mLabel.draw(canvas); } canvas.restoreToCount(state); } @@ -606,6 +620,7 @@ public class PieRenderer extends OverlayRenderer } else { deselect(); } + mLabel.setText(""); return false; } PieItem item = findItem(mPolar); @@ -665,6 +680,8 @@ public class PieRenderer extends OverlayRenderer if (item != null && item.isEnabled()) { item.setSelected(true); mCurrentItem = item; + mLabel.setText(mCurrentItem.getLabel()); + layoutLabel(getLevel()); } else { mCurrentItem = null; } @@ -690,6 +707,7 @@ public class PieRenderer extends OverlayRenderer mCurrentItem = item; if ((mCurrentItem != getOpenItem()) && mCurrentItem.hasItems()) { openCurrentItem(); + layoutLabel(getLevel()); } } else { mCurrentItem = null; @@ -728,6 +746,7 @@ public class PieRenderer extends OverlayRenderer mXFade = null; ci.setSelected(false); mOpening = false; + mLabel.setText(""); } @Override |