diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 2c7a2e8ec82..f6f68864a44 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -316,6 +316,12 @@
16dp
+
+ 30sp
+
+ 14sp
+
+ 10sp
66dp
diff --git a/src/com/android/settings/widget/DonutView.java b/src/com/android/settings/widget/DonutView.java
index 7a13a0e80e6..506ada93f92 100644
--- a/src/com/android/settings/widget/DonutView.java
+++ b/src/com/android/settings/widget/DonutView.java
@@ -16,6 +16,7 @@
package com.android.settings.widget;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
@@ -34,6 +35,8 @@ import com.android.settings.Utils;
*/
public class DonutView extends View {
private static final int TOP = -90;
+ // From manual testing, this is the longest we can go without visual errors.
+ private static final int LINE_CHARACTER_LIMIT = 10;
private float mStrokeWidth;
private float mDeviceDensity;
private int mPercent;
@@ -73,16 +76,19 @@ public class DonutView extends View {
mFilledArc.setColor(Utils.getDefaultColor(mContext, R.color.meter_consumed_color));
mFilledArc.setColorFilter(mAccentColorFilter);
+ Resources resources = context.getResources();
mTextPaint = new TextPaint();
mTextPaint.setColor(Utils.getColorAccent(getContext()));
mTextPaint.setAntiAlias(true);
- mTextPaint.setTextSize(14f * mDeviceDensity);
+ mTextPaint.setTextSize(
+ resources.getDimension(R.dimen.storage_donut_view_label_text_size));
mTextPaint.setTextAlign(Paint.Align.CENTER);
mBigNumberPaint = new TextPaint();
mBigNumberPaint.setColor(Utils.getColorAccent(getContext()));
mBigNumberPaint.setAntiAlias(true);
- mBigNumberPaint.setTextSize(30f * mDeviceDensity);
+ mBigNumberPaint.setTextSize(
+ resources.getDimension(R.dimen.storage_donut_view_percent_text_size));
mBigNumberPaint.setTextAlign(Paint.Align.CENTER);
}
@@ -136,6 +142,13 @@ public class DonutView extends View {
mPercent = percent;
mPercentString = Utils.formatPercentage(mPercent);
mFullString = getContext().getString(R.string.storage_percent_full);
+ if (mFullString.length() > LINE_CHARACTER_LIMIT) {
+ mTextPaint.setTextSize(
+ getContext()
+ .getResources()
+ .getDimension(
+ R.dimen.storage_donut_view_shrunken_label_text_size));
+ }
invalidate();
}