diff options
author | Chris Craik <ccraik@google.com> | 2014-06-24 12:19:00 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2014-06-24 15:56:05 -0700 |
commit | 58945975b256739fdfe78435d7846d1e2fd29da1 (patch) | |
tree | 320b9e6b6be9b294b79d10bbb2556b2ec9e119a9 /graphics/java | |
parent | 3dab92c510381e5e768e2bce2500f138407fa441 (diff) | |
download | frameworks_base-58945975b256739fdfe78435d7846d1e2fd29da1.zip frameworks_base-58945975b256739fdfe78435d7846d1e2fd29da1.tar.gz frameworks_base-58945975b256739fdfe78435d7846d1e2fd29da1.tar.bz2 |
Outline support in DrawableContainer and LayerDrawable
bug:14445484
Change-Id: I26a45b0115b976d0dbcc351a208dc0956bc52e96
Diffstat (limited to 'graphics/java')
-rw-r--r-- | graphics/java/android/graphics/drawable/DrawableContainer.java | 10 | ||||
-rw-r--r-- | graphics/java/android/graphics/drawable/LayerDrawable.java | 12 |
2 files changed, 22 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index 38b8aaf..ed44cde 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -16,12 +16,14 @@ package android.graphics.drawable; +import android.annotation.NonNull; import android.content.res.ColorStateList; import android.content.res.Resources; import android.content.res.Resources.Theme; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Insets; +import android.graphics.Outline; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.PorterDuff.Mode; @@ -123,6 +125,14 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { } @Override + public boolean getOutline(@NonNull Outline outline) { + if (mCurrDrawable != null) { + return mCurrDrawable.getOutline(outline); + } + return false; + } + + @Override public void setAlpha(int alpha) { if (!mHasAlpha || mAlpha != alpha) { mHasAlpha = true; diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java index 5cea7c9..2f22392 100644 --- a/graphics/java/android/graphics/drawable/LayerDrawable.java +++ b/graphics/java/android/graphics/drawable/LayerDrawable.java @@ -16,12 +16,14 @@ package android.graphics.drawable; +import android.annotation.NonNull; import android.content.res.ColorStateList; import android.content.res.Resources; import android.content.res.Resources.Theme; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.ColorFilter; +import android.graphics.Outline; import android.graphics.PixelFormat; import android.graphics.PorterDuff.Mode; import android.graphics.Rect; @@ -563,6 +565,16 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } } + /** + * Builds an Outline from the first child Drawable, if present. + */ + @Override + public boolean getOutline(@NonNull Outline outline) { + if (mLayerState.mNum < 1) return false; + final Drawable firstChild = mLayerState.mChildren[0].mDrawable; + return firstChild.getOutline(outline); + } + @Override public void setHotspot(float x, float y) { final ChildDrawable[] array = mLayerState.mChildren; |