画像のファイルをアプリ内に読み込む時には、BitmapFactoryクラスを利用する。
この時、BitmapFactoryのOptionsを用いて、読み込む画像に対しての制限などが行える。画像サイズなどそのサイズのまま読み込むと大きなメモリを使ってしまう事がある為、画像に関しては一定のサイズに変更をして読み込むなどの処理が求められる。
1、***.jpgのサイズだけを読み込む
BitmapFactoryのOptionsにはinJustDecodeBoundsと言う変数を持っている。この値をtrueとすると、画像は読み込まず、画像のサイズなどの情報を先に読み込む事ができる。
BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile("***.jpg",options);
上記のかたちで、optionsの中に画像の幅のデータなどが含まれるので、画像のデータを元に縮小率を設定する。縮小率に関しては、inSampleSizeで設定ができる。(縮小率を利用する。※拡大率ではない。)縦の大きさを50に固定をして表示をする事が下記でできる。
int _imgHeight = options.outHeight; int _imgScale = _imgHeight/50; options.inSampleSize = scale
また画像を取得する時は、先ほどのinJustDecodeBoundsをfalseに変更する必要があるので
options.inJustDecodeBounds = false; Bitmap picture = BitmapFactory.decodeFile("***.jpg",options
でpictureの中に画像のデータをbitmapで入れる事ができた。
つづく