diff options
Diffstat (limited to 'graphics/java/android/graphics/drawable/LayerDrawable.java')
-rw-r--r-- | graphics/java/android/graphics/drawable/LayerDrawable.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java index 8373c7f..d9469d4 100644 --- a/graphics/java/android/graphics/drawable/LayerDrawable.java +++ b/graphics/java/android/graphics/drawable/LayerDrawable.java @@ -133,6 +133,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { mLayerState.mChildren = r; ensurePadding(); + refreshPadding(); } LayerDrawable() { @@ -143,6 +144,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { mLayerState = createConstantState(state, res); if (mLayerState.mNum > 0) { ensurePadding(); + refreshPadding(); } } @@ -162,6 +164,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { inflateLayers(r, parser, attrs, theme); ensurePadding(); + refreshPadding(); } /** @@ -431,6 +434,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { final ChildDrawable layer = createLayer(dr); final int index = addLayer(layer); ensurePadding(); + refreshChildPadding(index, layer); return index; } @@ -568,6 +572,8 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { childDrawable.mDrawable = drawable; mLayerState.invalidateCache(); + + refreshChildPadding(index, childDrawable); } /** @@ -1623,6 +1629,14 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { mPaddingB = new int[N]; } + void refreshPadding() { + final int N = mLayerState.mNum; + final ChildDrawable[] array = mLayerState.mChildren; + for (int i = 0; i < N; i++) { + refreshChildPadding(i, array[i]); + } + } + @Override public ConstantState getConstantState() { if (mLayerState.canConstantState()) { |