迁移到AndroidX时的菜单图标大小

时间:2019-08-30 10:35:39

标签: java android androidx

我们最近已根据需要将应用程序更新为Android X,方法是转到“重构”>“迁移到Android Studio中的Android X”。大多数事情似乎都运行良好,但是我们在菜单和按钮上都遇到了图像尺寸问题。

例如:

getMenuInflater().inflate(R.menu.top_menu, menu);
displayPhotos = menu.getItem(0);
displayPhotos.setIcon(
    Util.resize(
        ResourcesCompat.getDrawable( getResources() , R.drawable.bb_photos_off, null)
        ,this,22,22
    )
);

定义的调整大小功能如下:

public static Drawable resize(Drawable image,Context c, int width, int height) {
    int iconWidth = (int)  TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, width, c.getResources().getDisplayMetrics());
    int iconHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, height, c.getResources().getDisplayMetrics());
    Bitmap b = ((BitmapDrawable)image).getBitmap();
    Bitmap bitmapResized = Bitmap.createScaledBitmap(b, iconWidth,iconHeight, false);
    return new BitmapDrawable(c.getResources(),bitmapResized);
}

调整大小功能应为手机的像素密度创建正确大小的图像,以避免我们准备多种尺寸的图像。

在迁移之前,在运行API 28的仿真器上,图像看起来很完美。之后,它们的大小大约是原来的两倍。

我们在Android X迁移中缺少任何可能导致此问题的东西吗?

0 个答案:

没有答案