diff options
| author | Alan Viverette <alanv@google.com> | 2014-05-12 10:55:37 -0700 |
|---|---|---|
| committer | Alan Viverette <alanv@google.com> | 2014-05-12 10:55:37 -0700 |
| commit | 661e63658da39cccfe49a129e4860455716ff3c9 (patch) | |
| tree | 821001b8c792c62b4e230bbe2808705b055d26f3 /core/java/android/widget/ProgressBar.java | |
| parent | b7a6e198fec1e5c1afa2715b37728db2328c9032 (diff) | |
Support for hollow switch and seek bar thumbs
Also cleans up AbsSeekBar.
Change-Id: I996ea90c732c1da6a801aad3079f6bb3692d5c67
Diffstat (limited to 'core/java/android/widget/ProgressBar.java')
| -rw-r--r-- | core/java/android/widget/ProgressBar.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/core/java/android/widget/ProgressBar.java b/core/java/android/widget/ProgressBar.java index f7e81b8bd2c7..0c3715dc6b7b 100644 --- a/core/java/android/widget/ProgressBar.java +++ b/core/java/android/widget/ProgressBar.java @@ -1066,21 +1066,30 @@ public class ProgressBar extends View { protected synchronized void onDraw(Canvas canvas) { super.onDraw(canvas); - Drawable d = mCurrentDrawable; + drawTrack(canvas); + } + + /** + * Draws the progress bar track. + */ + void drawTrack(Canvas canvas) { + final Drawable d = mCurrentDrawable; if (d != null) { // Translate canvas so a indeterminate circular progress bar with padding // rotates properly in its animation - canvas.save(); + final int saveCount = canvas.save(); + if(isLayoutRtl() && mMirrorForRtl) { canvas.translate(getWidth() - mPaddingRight, mPaddingTop); canvas.scale(-1.0f, 1.0f); } else { canvas.translate(mPaddingLeft, mPaddingTop); } - long time = getDrawingTime(); + + final long time = getDrawingTime(); if (mHasAnimation) { mAnimation.getTransformation(time, mTransformation); - float scale = mTransformation.getAlpha(); + final float scale = mTransformation.getAlpha(); try { mInDrawing = true; d.setLevel((int) (scale * MAX_LEVEL)); @@ -1089,8 +1098,10 @@ public class ProgressBar extends View { } postInvalidateOnAnimation(); } + d.draw(canvas); - canvas.restore(); + canvas.restoreToCount(saveCount); + if (mShouldStartAnimationDrawable && d instanceof Animatable) { ((Animatable) d).start(); mShouldStartAnimationDrawable = false; |
