Android アプリ開発 「MATRIX」

Androidアプリの開発に役立つサンプル集

ビットマップ画像をそのままのサイズで画面に出力する方法

今回はビットマップ画像をそのままのサイズで画面に出力する方法です。

ビットマップ画像を画面に出力するとサイズが自動で変更されてしまい調整に苦労する場合があります。そんな時は、BitmapFactoryのオプションで自動的なサイズ変更処理をカットしてしまいましょう。

ソースコード(MainActivity.java

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//下記のMyViewクラスを登録して画面に出力する
setContentView(new MyView(getBaseContext()));
}

//このビュークラスで画面を生成
public class MyView extends View{

//画像を表示するためのビットマップオブジェクトを用意
private Bitmap bitmap;
//画面に描画するためのペイントオブジェクトを用意
private Paint paint = new Paint();
//読み込んだビットマップ画像に適用するオプションを用意
private BitmapFactory.Options options = new BitmapFactory.Options();

public MyView(Context context) {
super(context);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

//ビットマップのオプションで画像を拡大縮小なしで出力するように設定
options.inScaled = false;
//ビットマップオブジェクトに画像ファイルをセットして、オプションを適用
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.nodoguro, options);
//座標0,0の位置にビットマップ画面に出力する
canvas.drawBitmap(bitmap, 0, 0, paint);
}
}
}

結果サンプル

オプションを適用しているため画像は拡大されることなく、そのままのサイズ(500px X 500px)で表示されました。

f:id:vw-dsg:20170605211921p:plain

 

オプションを指定しないとこのサンプルのように自動的に巨大化してしまい苦労します。画像をそのままのサイズで出力したいときはオプションを指定しましょう。

f:id:vw-dsg:20170605213344p:plain

 

END