Update launcher to use new bitmap density API.
diff --git a/src/com/android/launcher/Utilities.java b/src/com/android/launcher/Utilities.java
index 33b084b..4a22cba 100644
--- a/src/com/android/launcher/Utilities.java
+++ b/src/com/android/launcher/Utilities.java
@@ -25,6 +25,7 @@
 import android.graphics.PaintFlagsDrawFilter;
 import android.graphics.Paint;
 import android.graphics.Rect;
+import android.util.DisplayMetrics;
 import android.content.res.Resources;
 import android.content.Context;
 
@@ -54,6 +55,7 @@
 
             Bitmap centered = Bitmap.createBitmap(bitmapWidth < width ? width : bitmapWidth,
                     bitmapHeight < height ? height : bitmapHeight, Bitmap.Config.RGB_565);
+            centered.setDensity(bitmap.getDensity());
             Canvas canvas = new Canvas(centered);
             canvas.drawColor(color);
             canvas.drawBitmap(bitmap, (width - bitmapWidth) / 2.0f, (height - bitmapHeight) / 2.0f,
@@ -93,16 +95,11 @@
             painter.setIntrinsicWidth(width);
             painter.setIntrinsicHeight(height);
         } else if (icon instanceof BitmapDrawable) {
-            float displayDensity = context.getResources().getDisplayMetrics().density;
+            // Ensure the bitmap has a density.
             BitmapDrawable bitmapDrawable = (BitmapDrawable) icon;
             Bitmap bitmap = bitmapDrawable.getBitmap();
-            float iconDensity = bitmap.getDensityScale();
-            scale = displayDensity / iconDensity;
-
-            // Scale the bitmap to the screen density size if it's not loaded at the same density.
-            if (scale != 1.0f) {
-                icon = bitmapDrawable = new BitmapDrawable(bitmap);
-                bitmapDrawable.setDensityScale(scale);
+            if (bitmap.getDensity() == Bitmap.DENSITY_NONE) {
+                bitmapDrawable.setTargetDensity(context.getResources().getDisplayMetrics());
             }
         }
         int iconWidth = icon.getIntrinsicWidth();