bitmap.getWidth(),getHeight()与尺寸不符

在使用BitmapFactory加载图片时,常会出现这种情况,返回的图片尺寸与实际尺寸不符。这是由于我们把图片资源放到res/drawable文件路径下时,选择的文件不同所致,不同的文件夹会有不同的缩放。

电脑上图片尺寸,单位是像素。Android手机的屏幕分ldpi、mdpi、hdpi,甚至还有xhdpi,对于mdpi(density=160)设备,1dp=1px,对于hdpi(density=240)的设备,1dp=1.5px。所以,把图片放在了res/drawable-mdpi目录下,而运行的Android设备屏幕属于hdpi,导致图片尺寸会扩大1.5倍。

解决方法:

BitmapFactory.Options bfoOptions = new BitmapFactory.Options();

bfoOptions.inScaled = false;

Bitmap img1 = BitmapFactory.decodeResource(getResources(), R.drawable.img, bfoOptions);

你可能感兴趣的:(bitmap.getWidth(),getHeight()与尺寸不符)