うまとま君の技術めも

2015年新卒入社した社畜の勉強内容などなど

Drawableに設置したpngファイルのオリジナルサイズを取得する

AndroidにてDrawableに設置したpngファイルのサイズを取得しようとしたら、ちょっとはまったのでメモ。

前提

drawableに 50 * 50 px の画像ファイルを設置。
res/drawable/sample.png

画像サイズを取得

リソースIDからBitmapを生成して#getWidth, #getHeightでサイズを取得したら、 実際のサイズとは異なる値が取得される。。。

Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.sample);
int w = b.getWidth();
int h = b.getHeight();
// w => 150; h => 150;

そんな時はBitmapFactory.Optionsから値を取得してあげれば、 オリジナルの画像サイズが取得出来ました( ´ー`)フゥー...

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.sample, options);
int w = options.outWidth;
int h = options.outHeight;
// w => 50; h => 50;

参考

http://stackoverflow.com/questions/8855036/incorrect-image-dimensions-in-android-when-using-bitmap