Java 迁移到AndroidX时的菜单图标大小
我们最近根据需要将应用程序更新到Android X,在Android Studio中进入重构>迁移到Android X。大多数东西似乎都工作得很好,但我们在菜单和按钮中都遇到了图像大小的问题 例如:Java 迁移到AndroidX时的菜单图标大小,java,android,androidx,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.get
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迁移过程中,我们是否遗漏了任何可能导致此问题的东西