我使用位圖從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