由于密度,位图未正确缩放

时间:2014-06-23 16:44:59

标签: android bitmap

我正在加载存储在drawable-hdpi文件夹中的位图(包含所有其他图像)。

options.inScaled = false;

Bitmap rawBMP = BitmapFactory.decodeResource(res, resId, options);

Bitmap finalBMP = Bitmap.createScaledBitmap(rawBMP, reqWidth, reqHeight, true);

原始位图是512x512,如果我将inScaled设置为false,那也是rawBMP的大小。 最终的位图仅适用于小于512的设备(我的S2为480)。在具有较高res的设备上,报告最终bmp大小应该是,但该图像的可见部分是原始大小。因此createScaledBitmap正在创建一个大位图,但不会向上扩展原始位置。

如果我将inScaled设置为true,我会收到一个比原始大小更少的rawBMP,但最后的位图似乎可以工作但是你可以想象质量会因为它的大小翻倍而受到影响。

在Galaxy 10平板电脑上:

inScaled true:整个屏幕(高度)可见512原始,341 rawBMP,最终800(密度160)最终图像

inScaled false:510原始,512 rawBMP,最终800(密度240)最终图像可见部分仍为512,其余部分填充透明,此处绝对没有缩放。

我不明白这种行为。如果我有一个512像素的bmp并希望将其缩放到800像素然后只是将这些像素绘制到屏幕1:1

修改

为了论证,我可以说我需要这样缩放的位图,代码不仅仅是这个代码片段

0 个答案:

没有答案