将资源图片转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);
网友评论