我的位图尺寸为908 x 1003。 我的屏幕尺寸是480 x 800。 我想全屏显示这个位图。 我正在调整位图的大小,但仍然有空格 在我的屏幕中(图像以全高而不是宽度显示)。
这是我的代码
我有一个名为processedMap(908 x 1003)的位图。
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int widthPix = (int) Math.ceil(dm.widthPixels * (dm.densityDpi / 160.0));
int heightPix = (int) Math.ceil(dm.heightPixels * (dm.densityDpi / 160.0));
Bitmap resizedBitmap = Bitmap.createScaledBitmap(processedMap, (int) widthPix, (int)heightPix, true);
imageView.setImageBitmap(resizedBitmap);
奇怪的是,当我增加widthPix的大小(如widthPix + 40)时,问题就解决了!请帮我。
答案 0 :(得分:0)
您的具体问题在于:
(dm.densityDpi / 160.0)
在此语句上加上断点,然后评估此计算。你在没有强制转换的情况下划分2个整数,因为它在括号中,所以在乘法之前进行求值。净结果是你丢失了小数部分,例如240/160 => 1
使用此:
(dm.densityDpi / 160.0d)
话虽如此,Doomsknight的评论是合理的。既然你只需要处理像素,为什么会使它复杂化呢?