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