我使用位图从res中加载了640 x 480(px)jpg图像。如何计算Android中的位图像素大小
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bmp);
但是我发现:
- bitmap.getWitdh()的值是1280;
- bitmap.getHeight()的值是960;
- bitmap.getRowBytes()的值是2560;
为什么?
我使用位图从res中加载了640 x 480(px)jpg图像。如何计算Android中的位图像素大小
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bmp);
但是我发现:
为什么?
这取决于您的手机。由于android支持多个屏幕,为了允许位图在不同屏幕上以相同的方式缩放,原始位图将被存储以满足屏幕的密度。鉴于你发布的价值,似乎你的手机有一个xdpi屏幕。如果你的手机是mdpi,可能getHeight()和getWidth会让你返回480和640。有关详细信息,请参见here
发生这种情况是因为您没有指定任何BitmapFactory.Options
,特别是inTargetDensity
字段。请尝试使用decodeResource(Resources, resId, BitmapFactory.Options)
方法。
检查你的百万像素大小 – Krish 2012-03-27 07:44:58