diff options
author | Mark Wei <markwei@google.com> | 2013-11-22 20:25:08 -0800 |
---|---|---|
committer | Mark Wei <markwei@google.com> | 2013-11-22 20:25:08 -0800 |
commit | df3da61c8f2f54604376d9761649bdba54aa858b (patch) | |
tree | 672989f2cd2dd47ad830dcdc7072eddafb2cac21 /src/com/android/bitmap/drawable | |
parent | cd728097ff189542877a2952879a3aa3c6cb5666 (diff) | |
download | bitmap-df3da61c8f2f54604376d9761649bdba54aa858b.tar.gz |
Background color of TileDrawable must be opaque.
Change-Id: I6ac7b4ba6f68181424064377464e1896c2129f13
Diffstat (limited to 'src/com/android/bitmap/drawable')
-rw-r--r-- | src/com/android/bitmap/drawable/ExtendedBitmapDrawable.java | 8 | ||||
-rw-r--r-- | src/com/android/bitmap/drawable/TileDrawable.java | 14 |
2 files changed, 9 insertions, 13 deletions
diff --git a/src/com/android/bitmap/drawable/ExtendedBitmapDrawable.java b/src/com/android/bitmap/drawable/ExtendedBitmapDrawable.java index ac332a9..2e3d43f 100644 --- a/src/com/android/bitmap/drawable/ExtendedBitmapDrawable.java +++ b/src/com/android/bitmap/drawable/ExtendedBitmapDrawable.java @@ -22,6 +22,7 @@ import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.content.res.Resources; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Rect; import android.graphics.drawable.Drawable; @@ -634,7 +635,7 @@ public class ExtendedBitmapDrawable extends BasicBitmapDrawable implements public float parallaxSpeedMultiplier = 1; /** - * Optional field if {@link #FEATURE_STATE_CHANGES} is supported. + * Optional field if {@link #FEATURE_STATE_CHANGES} is supported. Must be an opaque color. * * See {@link android.graphics.Color}. */ @@ -706,6 +707,11 @@ public class ExtendedBitmapDrawable extends BasicBitmapDrawable implements "ExtendedOptions: To support FEATURE_STATE_CHANGES, " + "placeholderAnimationDuration must be set correctly."); } + if (backgroundColor != 0 && Color.alpha(backgroundColor) != 255) { + throw new IllegalStateException( + "ExtendedOptions: To support FEATURE_STATE_CHANGES, " + + "backgroundColor must be set to an opaque color."); + } } } } diff --git a/src/com/android/bitmap/drawable/TileDrawable.java b/src/com/android/bitmap/drawable/TileDrawable.java index 485e7ca..42400b4 100644 --- a/src/com/android/bitmap/drawable/TileDrawable.java +++ b/src/com/android/bitmap/drawable/TileDrawable.java @@ -19,7 +19,6 @@ package com.android.bitmap.drawable; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Rect; @@ -91,13 +90,10 @@ public class TileDrawable extends Drawable implements Drawable.Callback { if (!isVisible() && mPaint.getAlpha() == 0) { return; } - // Save paint alpha. final int alpha = mPaint.getAlpha(); - mPaint.setColor(getColorWithAlpha(mOpts.backgroundColor, alpha)); - canvas.drawRect(getBounds(), mPaint); - // Restore paint alpha. + mPaint.setColor(mOpts.backgroundColor); mPaint.setAlpha(alpha); - + canvas.drawRect(getBounds(), mPaint); if (mInner != null) mInner.draw(canvas); } @@ -180,10 +176,4 @@ public class TileDrawable extends Drawable implements Drawable.Callback { public void unscheduleDrawable(Drawable who, Runnable what) { unscheduleSelf(what); } - - private static int getColorWithAlpha(int color, int alpha) { - float fade = alpha / 255f; - return Color.argb((int) (fade * Color.alpha(color)), Color.red(color), Color.green(color), - Color.blue(color)); - } } |