summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/bitmap/drawable/TileDrawable.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/com/android/bitmap/drawable/TileDrawable.java b/src/com/android/bitmap/drawable/TileDrawable.java
index c756422..485e7ca 100644
--- a/src/com/android/bitmap/drawable/TileDrawable.java
+++ b/src/com/android/bitmap/drawable/TileDrawable.java
@@ -19,6 +19,7 @@ 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;
@@ -90,10 +91,13 @@ public class TileDrawable extends Drawable implements Drawable.Callback {
if (!isVisible() && mPaint.getAlpha() == 0) {
return;
}
+ // Save paint alpha.
final int alpha = mPaint.getAlpha();
- mPaint.setColor(mOpts.backgroundColor);
- mPaint.setAlpha(alpha);
+ mPaint.setColor(getColorWithAlpha(mOpts.backgroundColor, alpha));
canvas.drawRect(getBounds(), mPaint);
+ // Restore paint alpha.
+ mPaint.setAlpha(alpha);
+
if (mInner != null) mInner.draw(canvas);
}
@@ -177,4 +181,9 @@ public class TileDrawable extends Drawable implements Drawable.Callback {
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));
+ }
}