diff options
| -rw-r--r-- | graphics/java/android/graphics/drawable/BitmapDrawable.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java index daf25815d1ac..bffbc751ee83 100644 --- a/graphics/java/android/graphics/drawable/BitmapDrawable.java +++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java @@ -641,16 +641,22 @@ public class BitmapDrawable extends Drawable { @Override public void setTintList(ColorStateList tint) { - mBitmapState.mTint = tint; - mTintFilter = updateTintFilter(mTintFilter, tint, mBitmapState.mTintMode); - invalidateSelf(); + final BitmapState state = mBitmapState; + if (state.mTint != tint) { + state.mTint = tint; + mTintFilter = updateTintFilter(mTintFilter, tint, mBitmapState.mTintMode); + invalidateSelf(); + } } @Override public void setTintMode(PorterDuff.Mode tintMode) { - mBitmapState.mTintMode = tintMode; - mTintFilter = updateTintFilter(mTintFilter, mBitmapState.mTint, tintMode); - invalidateSelf(); + final BitmapState state = mBitmapState; + if (state.mTintMode != tintMode) { + state.mTintMode = tintMode; + mTintFilter = updateTintFilter(mTintFilter, mBitmapState.mTint, tintMode); + invalidateSelf(); + } } /** |