调整android中的位图大小

时间:2012-11-10 23:24:42

标签: android bitmap

我的位图尺寸为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)时,问题就解决了!请帮我。

1 个答案:

答案 0 :(得分:0)

您的具体问题在于:

(dm.densityDpi / 160.0)

在此语句上加上断点,然后评估此计算。你在没有强制转换的情况下划分2个整数,因为它在括号中,所以在乘法之前进行求值。净结果是你丢失了小数部分,例如240/160 => 1

使用此:

(dm.densityDpi / 160.0d)

话虽如此,Doomsknight的评论是合理的。既然你只需要处理像素,为什么会使它复杂化呢?