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();
