如何在Android中计算位图像素大小

时间:2012-03-27 07:35:52

标签: android bitmap pixel

我使用Bitmap从res加载了一个640 x 480(in px)的jpg图像。

bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bmp);

但我发现:

  • bitmap.getWitdh()的值是1280;
  • bitmap.getHeight()的值是960;
  • bitmap.getRowBytes()的值是2560;

为什么?

2 个答案:

答案 0 :(得分:3)

这取决于你的手机。由于android支持多个屏幕,为了允许位图在不同屏幕上以相同方式缩放,存储原始位图以满足屏幕密度。鉴于您发布的价值似乎您的手机有xdpi屏幕。如果您的移动设备是mdpi,则getHeight()和getWidth可能会返回480和640。有关详细信息,请参阅here

答案 1 :(得分:2)

这是因为您未指定任何BitmapFactory.Options,特别是inTargetDensity字段。请尝试使用decodeResource(Resources, resId, BitmapFactory.Options)方法。