summaryrefslogtreecommitdiffstats
path: root/graphics/java
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2014-06-24 12:19:00 -0700
committerChris Craik <ccraik@google.com>2014-06-24 15:56:05 -0700
commit58945975b256739fdfe78435d7846d1e2fd29da1 (patch)
tree320b9e6b6be9b294b79d10bbb2556b2ec9e119a9 /graphics/java
parent3dab92c510381e5e768e2bce2500f138407fa441 (diff)
downloadframeworks_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.java10
-rw-r--r--graphics/java/android/graphics/drawable/LayerDrawable.java12
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;