android 资源图片转bitmap会压缩bug

将资源图片转bitmap,原代码:

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

上述代码会导致图片在不同资源文件下面会压缩

放到res/drawable-mdpi下放大了1.5倍 

放到res/drawable-xhdpi下缩小了1.3倍 

放到res/drawable-xxdpi下缩小了2倍 

原因:

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

解决办法:

修改上述代码,设置缩放为false:

BitmapFactory.Options bfoOptions =newBitmapFactory.Options();

bfoOptions.inScaled =false;

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

你可能感兴趣的:(android 资源图片转bitmap会压缩bug)