diff options
author | Chris Craik <ccraik@google.com> | 2014-08-14 13:45:38 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2014-08-15 00:57:52 +0000 |
commit | e222e359a0aab985488a711f6edb76820fe8c6df (patch) | |
tree | 5eac4305db372d47a201fe59a19e9ac58fd0a2f7 /graphics | |
parent | fdee9b44766c1bf36b488c6eea5838250d7f3aa5 (diff) | |
download | frameworks_base-e222e359a0aab985488a711f6edb76820fe8c6df.zip frameworks_base-e222e359a0aab985488a711f6edb76820fe8c6df.tar.gz frameworks_base-e222e359a0aab985488a711f6edb76820fe8c6df.tar.bz2 |
Disable shadow casting for transparent BitmapDrawables
bug:17013977
Change-Id: I26328c21360432bb34d3f19858dfdc0e6aede057
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/java/android/graphics/drawable/BitmapDrawable.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java index f5e63ae..40adf94 100644 --- a/graphics/java/android/graphics/drawable/BitmapDrawable.java +++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java @@ -16,6 +16,7 @@ package android.graphics.drawable; +import android.annotation.NonNull; import android.content.res.ColorStateList; import android.content.res.Resources; import android.content.res.Resources.Theme; @@ -27,6 +28,7 @@ import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Insets; import android.graphics.Matrix; +import android.graphics.Outline; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuff; @@ -598,6 +600,16 @@ public class BitmapDrawable extends Drawable { } @Override + public void getOutline(@NonNull Outline outline) { + super.getOutline(outline); + if (mBitmapState.mBitmap.hasAlpha()) { + // Bitmaps with alpha can't report a non-0 alpha, + // since they may not fill their rectangular bounds + outline.setAlpha(0.0f); + } + } + + @Override public void setAlpha(int alpha) { final int oldAlpha = mBitmapState.mPaint.getAlpha(); if (alpha != oldAlpha) { |