2016-02-06 144 views
-1

我收到內存不足的錯誤在我的Android項目,並指出這種說法:內存不足錯誤創建位圖

bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

有用來創建一個ARGB_8888位圖,其中可以挽救我的任何替代方法內存不足錯誤?

建議感激。 在此先感謝:)

+0

不使用位圖,使用uri –

+0

看看這個http://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-toa-a-位圖對象 – ELITE

+0

你可以壓縮圖像 – Awadesh

回答

2

Android上的位圖的內存異常有很多問題,其中許多問題在stackoverflow上討論。如果你通過現有的問題來看看你的現有問題是否與現有的問題相匹配,那麼最好的做法是,如果不是,請寫下你的情況有什麼不同。

不同的位圖配置將有不同的內存佔用。 RGB_565是一個16位顏色格式。 ARGB_888832位格式。

無論哪個getHolder().setFormat();您選擇的配置,或者如何繪製,ARGB_8888位圖將比格式的RGB_565格式的位圖要大得多(在內存中)。 所以最好使用RGB_565格式而不是ARGB_8888

一些例子:

Out of memory exception due to large bitmap size

Android: out of memory exception in Gallery

Android handling out of memory exception on image processing

等:https://stackoverflow.com/search?q=android+out+of+memory+exception+bitmap

因爲在這裏更詳細的訪問。 android - out of memory exception when creating bitmap

+0

我想創建一個空白畫布使用位圖與以下2條語句:obBitmapBuffer = Bitmap.createBitmap(obWidth,obHeight,Bitmap.Config.ARGB_8888); obCanvasBuffer = new Canvas(obBitmapBuffer);有人可以請幫忙,我該怎麼做。 (我上面提到的鏈接,但沒有ghelps) –

+0

謝謝Harshad,我剛剛嘗試RGB_565,它影響的動畫UI是不可接受的:(任何其他線索? –

+0

@AnyssaK你可以使位圖縮放,然後使用它也會解決問題。 – Harshad