OOMエラー 助けてくださいm(_ _)m

38 views
Skip to first unread message

kondo

unread,
Jul 21, 2013, 10:26:50 PM7/21/13
to android-deve...@googlegroups.com
はじめまして。
現在、画像関連のアプリを作っているのですが、
Out Of Memoryで挫折しそうです。。
まだ、プログラミング経験は浅くわからないことも多いのですが、
質問させていただきます。

Bitmap画像をリサイズして小さくする関数を作ったのですが、
createScaledBitmapのところで

java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)

のエラーがでます。
下記は、その関数です。


public static Bitmap resize(Bitmap img, int disWidth, int disHeight) {
bmp = null;

// 画像のサイズ取得
int i_width = img.getWidth();
int i_height = img.getHeight();
// ディスプレからの高さを求める
int d_height = (disWidth * i_height) / i_width;

bmp = Bitmap.createScaledBitmap(img, disWidth, d_height, false);
return bmp;
}

onStop()でbmpやimgのBitmapをrecycle()したり、
ImageViewをsetImageDrawable(null)したりしてます。

どうしたら、createScaledBitmapでOOMがでなくなりますでしょうか。

助けてくださると嬉しいです。
ご教示宜しくお願いします。
Reply all
Reply to author
Forward
0 new messages