summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2013-09-25 18:07:52 -0400
committerJohn Spurlock <jspurlock@google.com>2013-09-25 18:08:52 -0400
commitcfab99005360819294c65280d8b695ab50c1f0b3 (patch)
treedfb2cf1f4545efe2a97489e5816f81e45b2f3e8b /packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
parent6a1e32efb686bd5606f62076c70f399ff3bdc37d (diff)
downloadframeworks_base-cfab99005360819294c65280d8b695ab50c1f0b3.zip
frameworks_base-cfab99005360819294c65280d8b695ab50c1f0b3.tar.gz
frameworks_base-cfab99005360819294c65280d8b695ab50c1f0b3.tar.bz2
New battery meter view bolt shape + color.
Bug:10785785 Change-Id: Ia122bcaec1137ba45648ab3c97d8ec832fd26c85
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/BatteryMeterView.java')
-rwxr-xr-xpackages/SystemUI/src/com/android/systemui/BatteryMeterView.java38
1 files changed, 27 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
index 2be8ee5..150f132 100755
--- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
+++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
@@ -47,6 +47,8 @@ public class BatteryMeterView extends View implements DemoMode {
public static final int FULL = 96;
public static final int EMPTY = 4;
+ public static final float SUBPIXEL = 0.4f; // inset rects for softer edges
+
int[] mColors;
boolean mShowPercent = true;
@@ -186,8 +188,15 @@ public class BatteryMeterView extends View implements DemoMode {
mFramePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mFramePaint.setColor(res.getColor(R.color.batterymeter_frame_color));
+ mFramePaint.setDither(true);
+ mFramePaint.setStrokeWidth(0);
+ mFramePaint.setStyle(Paint.Style.FILL_AND_STROKE);
+ mFramePaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_ATOP));
+
mBatteryPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- mBatteryPaint.setColor(0xFF00FF00); // will be replaced by something from mColors
+ mBatteryPaint.setDither(true);
+ mBatteryPaint.setStrokeWidth(0);
+ mBatteryPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setColor(0xFFFFFFFF);
@@ -205,9 +214,9 @@ public class BatteryMeterView extends View implements DemoMode {
mBoltPaint = new Paint();
mBoltPaint.setAntiAlias(true);
- mBoltPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); // punch hole
- setLayerType(LAYER_TYPE_HARDWARE, null);
+ mBoltPaint.setColor(res.getColor(R.color.batterymeter_bolt_color));
mBoltPoints = loadBoltPoints(res);
+ setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
private static float[] loadBoltPoints(Resources res) {
@@ -264,16 +273,23 @@ public class BatteryMeterView extends View implements DemoMode {
mFrame.left + width * 0.25f,
mFrame.top,
mFrame.right - width * 0.25f,
- mFrame.top + mButtonHeight);
+ mFrame.top + mButtonHeight + 5 /*cover frame border of intersecting area*/);
+
+ mButtonFrame.top += SUBPIXEL;
+ mButtonFrame.left += SUBPIXEL;
+ mButtonFrame.right -= SUBPIXEL;
mFrame.top += mButtonHeight;
+ mFrame.left += SUBPIXEL;
+ mFrame.top += SUBPIXEL;
+ mFrame.right -= SUBPIXEL;
+ mFrame.bottom -= SUBPIXEL;
// first, draw the battery shape
c.drawRect(mFrame, mFramePaint);
// fill 'er up
- final int pct = tracker.level;
- final int color = tracker.plugged ? mChargeColor : getColorForLevel(pct);
+ final int color = tracker.plugged ? mChargeColor : getColorForLevel(level);
mBatteryPaint.setColor(color);
if (level >= FULL) {
@@ -294,10 +310,10 @@ public class BatteryMeterView extends View implements DemoMode {
if (tracker.plugged) {
// draw the bolt
- final int bl = (int)(mFrame.left + width / 4f);
- final int bt = (int)(mFrame.top + height / 6f);
- final int br = (int)(mFrame.right - width / 5f);
- final int bb = (int)(mFrame.bottom - height / 6f);
+ final int bl = (int)(mFrame.left + mFrame.width() / 4.5f);
+ final int bt = (int)(mFrame.top + mFrame.height() / 6f);
+ final int br = (int)(mFrame.right - mFrame.width() / 7f);
+ final int bb = (int)(mFrame.bottom - mFrame.height() / 10f);
if (mBoltFrame.left != bl || mBoltFrame.top != bt
|| mBoltFrame.right != br || mBoltFrame.bottom != bb) {
mBoltFrame.set(bl, bt, br, bb);
@@ -325,7 +341,7 @@ public class BatteryMeterView extends View implements DemoMode {
: (tracker.level == 100 ? 0.38f : 0.5f)));
mTextHeight = -mTextPaint.getFontMetrics().ascent;
- final String str = String.valueOf(SINGLE_DIGIT_PERCENT ? (pct/10) : pct);
+ final String str = String.valueOf(SINGLE_DIGIT_PERCENT ? (level/10) : level);
final float x = mWidth * 0.5f;
final float y = (mHeight + mTextHeight) * 0.47f;
c.drawText(str,