Update launcher to use new bitmap density API.
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user