From 7a23b49a8ceb07d3fa12c45fd42cd16131fd746a Mon Sep 17 00:00:00 2001 From: Philip Milne Date: Tue, 24 Apr 2012 22:12:36 -0700 Subject: Fixes for optical bounds feature. 1. Make the feature opt-in (ViewGroup::layoutMode defaults to CLIP_BOUNDS) without inheritance. 2. Rename COMPONENT_BOUNDS to CLIP_BOUNDS. 3. Rename LAYOUT_BOUNDS to OPTICAL_BOUNDS. 4. Complete GridLayout implementation. 5. Change the default_gap between components to 8dp, to align with the Style Guide. Change-Id: I8d40dfc5f4ca469f6424eb3ff60d07bec56e3a9f --- .../java/android/graphics/drawable/NinePatchDrawable.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'graphics/java/android') diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java index 006baa70a977..b68b267976ac 100644 --- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java +++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java @@ -56,6 +56,7 @@ public class NinePatchDrawable extends Drawable { private NinePatchState mNinePatchState; private NinePatch mNinePatch; private Rect mPadding; + private Insets mLayoutInsets = Insets.NONE; private Paint mPaint; private boolean mMutated; @@ -180,12 +181,21 @@ public class NinePatchDrawable extends Drawable { } } + private Insets scaleFromDensity(Insets insets, int sdensity, int tdensity) { + int left = Bitmap.scaleFromDensity(insets.left, sdensity, tdensity); + int top = Bitmap.scaleFromDensity(insets.top, sdensity, tdensity); + int right = Bitmap.scaleFromDensity(insets.right, sdensity, tdensity); + int bottom = Bitmap.scaleFromDensity(insets.bottom, sdensity, tdensity); + return Insets.of(left, top, right, bottom); + } + private void computeBitmapSize() { final int sdensity = mNinePatch.getDensity(); final int tdensity = mTargetDensity; if (sdensity == tdensity) { mBitmapWidth = mNinePatch.getWidth(); mBitmapHeight = mNinePatch.getHeight(); + mLayoutInsets = mNinePatchState.mLayoutInsets; } else { mBitmapWidth = Bitmap.scaleFromDensity(mNinePatch.getWidth(), sdensity, tdensity); @@ -202,6 +212,7 @@ public class NinePatchDrawable extends Drawable { dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity); dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity); } + mLayoutInsets = scaleFromDensity(mNinePatchState.mLayoutInsets, sdensity, tdensity); } } @@ -226,7 +237,7 @@ public class NinePatchDrawable extends Drawable { */ @Override public Insets getLayoutInsets() { - return mNinePatchState.mLayoutInsets; + return mLayoutInsets; } @Override -- cgit v1.2.3-59-g8ed1b