2010/06/16

java.lang.OutOfMemoryError: bitmap size exceeds VM budget

android端末(HT03A)のカメラで撮った画像をそのままBitmapに変換するとOutOfMemoryErrorで落ちる。
public class CameraView extends SurfaceView implements SurfaceHolder.Callback, PictureCallback {
    public void onPictureTaken(byte[] datas, Camera camera) {
        Bitmap bitmap = BitmapFactory.decodeByteArray(datas, 0, datas.length);
        // OutOfMemoryError
ログを見るとこんなことを言われてしまってた。
 java.lang.OutOfMemoryError: bitmap size exceeds VM budget
対処方法はこれ。
BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 2;
        Bitmap bitmap = BitmapFactory.decodeByteArray(datas, 0, datas.length, options);
see also:
http://developer.android.com/intl/ja/reference/android/graphics/BitmapFactory.Options.html
http://stackoverflow.com/questions/477572/android-strange-out-of-memory-issue

0 件のコメント :

コメントを投稿