Fix #2101821: Cut labels of menu items in "SnapTell" market app.

Ummmm...  this turns out to be pretty bad.  NinePatchDrawable was not
scaling its reported padding for compatibility mode, causing spacing
to be off.  All over the place.  This change should improve things quite
a bit (and magically makes nearly all of the menu flaws go away).
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index d5c8a08..e182c1c 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -152,10 +152,24 @@
     private void computeBitmapSize() {
         final int sdensity = mNinePatch.getDensity();
         final int tdensity = mTargetDensity;
-        mBitmapWidth = Bitmap.scaleFromDensity(mNinePatch.getWidth(),
-                sdensity, tdensity);
-        mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(),
-                sdensity, tdensity);
+        if (sdensity == tdensity) {
+            mBitmapWidth = mNinePatch.getWidth();
+            mBitmapHeight = mNinePatch.getHeight();
+        } else {
+            mBitmapWidth = Bitmap.scaleFromDensity(mNinePatch.getWidth(),
+                    sdensity, tdensity);
+            mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(),
+                    sdensity, tdensity);
+            Rect dest = mPadding;
+            Rect src = mNinePatchState.mPadding;
+            if (dest == src) {
+                mPadding = dest = new Rect(src);
+            }
+            dest.left = Bitmap.scaleFromDensity(src.left, sdensity, tdensity);
+            dest.top = Bitmap.scaleFromDensity(src.top, sdensity, tdensity);
+            dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity);
+            dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity);
+        }
     }
     
     // overrides
@@ -301,7 +315,6 @@
         if (!mMutated && super.mutate() == this) {
             mNinePatchState = new NinePatchState(mNinePatchState);
             mNinePatch = mNinePatchState.mNinePatch;
-            mPadding = mNinePatchState.mPadding;
             mMutated = true;
         }
         return this;
@@ -326,7 +339,8 @@
 
         NinePatchState(NinePatchState state) {
             mNinePatch = new NinePatch(state.mNinePatch);
-            mPadding = new Rect(state.mPadding);
+            // Note we don't copy the padding because it is immutable.
+            mPadding = state.mPadding;
             mDither = state.mDither;
             mChangingConfigurations = state.mChangingConfigurations;
             mTargetDensity = state.mTargetDensity;