summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wei <markwei@google.com>2013-11-22 16:27:59 -0800
committerMark Wei <markwei@google.com>2013-11-22 16:27:59 -0800
commitcd728097ff189542877a2952879a3aa3c6cb5666 (patch)
treee5beb8cc80102f9e5e41ff6abab8b3e08029b319
parent4a1464aad9c626bd63821697b215a16ee21db824 (diff)
downloadbitmap-cd728097ff189542877a2952879a3aa3c6cb5666.tar.gz
Fix bug where the paint's color and alpha were overriding each other.
Change-Id: I47f41c3bc20243cef209c2c299642c024cf35652
-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));
+ }
}