Android

【Android】BitmapFactoryで画像サイズを縮小する方法

この記事は画像サイズを縮小する2つの方法を紹介します。

1:画像の幅、高さを指定して表示
使用した画像サイズは、1920×1642です。

 try {
    InputStream is = getResources().getAssets().open("dragon.png");
    ImageView imageView = new ImageView(this);

    BitmapFactory.Options imageOptions = new BitmapFactory.Options();

    Bitmap bitmap = BitmapFactory.decodeStream(is);
    bitmap = Bitmap.createScaledBitmap(bitmap, 480, 410, true);

    imageView.setImageBitmap(bitmap);
    mainLayout.addView(imageView);
    is.close();
 } catch (IOException e) {
    Toast.makeText(this, "Error", Toast.LENGTH_SHORT);
 }

bitmap = Bitmap.createScaledBitmap(bitmap, 480, 410, true);
上記コードで、480×410に変更しています。

2:画像の縮小率を指定して表示
画像を7枚表示します。
その1枚1枚縮小率を変更するコードです。

 try {
    int scaleDownRate = 2; 

    for(int i=0; i<=6; ++i) {
        InputStream is = getResources().getAssets().open("dragon.png");
        ImageView imageView = new ImageView(this);
        BitmapFactory.Options imageOptions = new BitmapFactory.Options();

        imageOptions.inSampleSize = scaleDownRate;
        scaleDownRate++;

        Bitmap bitmap = BitmapFactory.decodeStream(is, null, imageOptions);

        imageView.setImageBitmap(bitmap);
        mainLayout.addView(imageView);
        is.close();
    }
 } catch (IOException e) {
    Toast.makeText(this, "Error", Toast.LENGTH_SHORT);
 }

imageOptions.inSampleSize = scaleDownRate;
上記コードで、比率の変更ができます。
値を10にすると10分の1の画像を作成できます。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です