diff options
| -rw-r--r-- | graphics/java/android/graphics/drawable/LayerDrawable.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java index f3a1b0eb52d5..760d554888ee 100644 --- a/graphics/java/android/graphics/drawable/LayerDrawable.java +++ b/graphics/java/android/graphics/drawable/LayerDrawable.java @@ -139,9 +139,12 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { final ChildDrawable[] r = new ChildDrawable[length]; for (int i = 0; i < length; i++) { r[i] = new ChildDrawable(mLayerState.mDensity); - r[i].mDrawable = layers[i]; - layers[i].setCallback(this); - mLayerState.mChildrenChangingConfigurations |= layers[i].getChangingConfigurations(); + Drawable child = layers[i]; + r[i].mDrawable = child; + if (child != null) { + child.setCallback(this); + mLayerState.mChildrenChangingConfigurations |= child.getChangingConfigurations(); + } } mLayerState.mNumChildren = length; mLayerState.mChildren = r; @@ -416,7 +419,8 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { final ChildDrawable[] layers = mLayerState.mChildren; final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { - if (layers[i].mDrawable.isProjected()) { + Drawable childDrawable = layers[i].mDrawable; + if (childDrawable != null && childDrawable.isProjected()) { return true; } } |