Android:以编程方式根据屏幕大小设置位图的宽度和高度

时间:2017-10-06 02:46:54

标签: android bitmap

假设我有尺寸 165x15.7 的位图A,它在 320x240 屏幕尺寸上正确显示,密度 0.75 。如果我想在 480x320 1.0 密度的不同屏幕尺寸上显示位图图像,如何在不同的屏幕尺寸上动态设置位图宽度和高度?我想以编程方式进行,我不想使用xml /多个布局/多维度。 任何帮助,将不胜感激。谢谢。

这里是示例

320x240屏幕尺寸

480x320屏幕尺寸

enter image description here

正如您可以看到上面的屏幕截图,示例徽标在480x320屏幕维度上看起来更小

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码获取设备屏幕的比例因子以缩放图像大小:

getResources().getDisplayMetrics().density;

这会给你:

ldpi = 0.75

mdpi = 1.0

hdpi = 1.5

xhdpi = 2.0

xxhdpi = 3.0

xxxhdpi = 4.0

来源:https://stackoverflow.com/a/10948031/6217595

答案 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);