2011-01-20 47 views
0

我的應用程序在某些Android設備上正常運行,但在某些設備上,它會導致內存不足錯誤。奇怪的「內存不足」錯誤

這裏是logcat的日誌:

http://logcat.miui-dev.com/147001

這是什麼活動呢是負載位圖,並通過onDraw()顯示這些位圖。

什麼會導致此錯誤?

我在做什麼?

上午只是馬平的所有圖像的方法中的圖像

_bitmapCache.put(R.drawable.gb2,BitmapFactory.decodeResource( getResources(),R.drawable.gb2));

並且當構造函數被調用我調用該方法,同時使用圖像我只是使用

canvas.drawBitmap(_bitmapCache.get(R.drawable.level1c1),0,0,NULL);

可以抓取圖像

+0

您是否搜索過這個? http://stackoverflow.com/search?q=Strange+%E2%80%9COut+of+Memory%E2%80%9D+Error+android – 2011-01-22 06:51:26

+0

是的,它沒有解決問題 – nicky 2011-01-22 10:07:16

回答

1

看起來您正在申請18兆圖像。你需要縮小你的圖像的方式。每個應用程序只允許16-24毫米的堆空間。我必須看到更多代碼才能提出進一步的建議,但18 MB圖像實在太大,ImageView不能自動縮放圖像,因此通常必須在顯示之前進行縮放在我的經驗中。

+0

張貼我的代碼本身, – nicky 2011-01-22 06:44:18

1

您必須在BitmapFactory的選項中指定一個inSampleSize,這將允許直接加載縮小版本的位圖。