假设我有尺寸 165x15.7 的位图A,它在 320x240 屏幕尺寸上正确显示,密度 0.75 。如果我想在 480x320 和 1.0 密度的不同屏幕尺寸上显示位图图像,如何在不同的屏幕尺寸上动态设置位图宽度和高度?我想以编程方式进行,我不想使用xml /多个布局/多维度。 任何帮助,将不胜感激。谢谢。
这里是示例
320x240屏幕尺寸
480x320屏幕尺寸
正如您可以看到上面的屏幕截图,示例徽标在480x320屏幕维度上看起来更小
答案 0 :(得分:3)
您可以使用以下代码获取设备屏幕的比例因子以缩放图像大小:
getResources().getDisplayMetrics().density;
这会给你:
ldpi = 0.75
mdpi = 1.0
hdpi = 1.5
xhdpi = 2.0
xxhdpi = 3.0
xxxhdpi = 4.0
答案 1 :(得分:0)
您可以使用ImageView
以任何屏幕尺寸显示位图。只需在imageView中设置位图,并将imageView的scaleType设置为fitCenter。
imageView.setScaleType (ImageView.ScaleType.FIT_CENTER);
如果要更改位图的尺寸,请创建缩放位图。
Bitmap resizedBitmap = Bitmap.createScaledBitmap(myBitmap, (int)(myBitmap.getWidth()*1.2), (int)(myBitmap.getHeight()*1.2), true);