BitmapFactory返回比源更大的图像

Fra*_*nke 9 android bitmapfactory

嗨,我正在从名为的png图像创建一个位图image.png.图像的尺寸为75(宽度)×92(高度).当我运行此代码时:

Bitmap bitmap = BitmapFactory.decodeResource(this.context.getResources(),  R.drawable.image
Log.d("image", "height: " + bitmap.getHeight() + " width: " + bitmap.getWidth());
Run Code Online (Sandbox Code Playgroud)

记录器日志:

DEBUG/image(3550): height: 138 width: 113
Run Code Online (Sandbox Code Playgroud)

并且屏幕上的图像比尺寸为75 x 92的其他图像大.我可以做什么来让android加载具有正确尺寸的图像?

小智 25

我的解决方案

BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;               
Bitmap bitmap = BitmapFactory.decodeResource(this.context.getResources(),  R.drawable.image, options );
Run Code Online (Sandbox Code Playgroud)


Ben*_*ben 12

听起来您设备上的屏幕密度与创建image.png的密度不同.

如果您确实想要阻止缩放,可以尝试以下方法之一:

  1. 将图像放在res/drawable-nodpi中(http://developer.android.com/guide/practices/screens_support.html#qualifiers)

  2. 使用ImageView.ScaleType.CENTER(http://developer.android.com/reference/android/widget/ImageView.ScaleType.html)

  3. 刚刚在SO上找到了这个相关的问题:Android:如何阻止Android 1.6+缩放图像