BitmapFactoryで画像を作れ!

今までリソースからBitmap形式の画像を取得するには、loadImageメソッドを自作し対応していた。
しかしBitmapFactoryを使うことでこれが非常に簡単になるのだ。なるのだ!

そのやり方は、

Bitmap bmp = BitmapFactory.decodeResource(res, id);

これだけ。resはリソース、idはリソースのIDが入ります。詳しくはソースを見るとわかると思います。
しかも画像の高さと幅は自動で取得してくれるっぽい。すごいぞBitmapFactory。

loadImageメソッドを作ってたのがばからしくなる。
というかloadImageメッソド内の処理はサンプルの“Snake"でやっていた処理と同じである。
なのでリソースから画像を読み込むにはこの方法なのかと信じていた。それがこんな方法があるとは。


というわけでこれからはBitmapFactoryを使うと楽だ。


ソースはやっつけだけど以下の感じで。

ソース

package net.swelt.android.animation;

import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.graphics.*;
import android.view.*;

public class AnimationTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(new AnimationView(this));
                
    }
    
    public class AnimationView extends View {
    	public AnimationView(Context context) {
    		super(context);
    	}
    	
    	@Override
    	public void onDraw(Canvas canvas) {
    		Bitmap bmp = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.kirby);
    		canvas.drawBitmap(bmp, 0, 0, null);
    	}
    }
}