Update launcher to use new bitmap density API.

This commit is contained in:
Dianne Hackborn
2009-07-22 21:56:50 -07:00
parent 142868a4a4
commit 32ce7f17a8
+5 -8
View File
@@ -25,6 +25,7 @@ import android.graphics.Canvas;
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 @@ final class Utilities {
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 @@ final class Utilities {
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();