2012-07-30 102 views
0

我想加載一張精靈圖片圖片作爲位圖,圖片分辨率爲3598 x 3598,其大小爲1.21MB。但是,當我試圖從下面的代碼加載高分辨率的精靈圖片3598 x 3598

AssetManager assets = this.getAssets(); 
try { 
     InputStream inputStream = assets.open("spritesheet.png"); 
     BufferedInputStream bufferedStream = new BufferedInputStream(inputStream); 
     Bitmap bitMap = BitmapFactory.decodeStream(bufferedStream); 
} catch (Exception e) {} 

我越來越OOM(內存不足)異常加載:'(,請指導我該怎麼辦?

回答

1

您應該減少的大小您精靈表。你想3598 X 3598 X 8個字節加載到內存...那是一個不少。

也許你可以最多把它分解成更小,更易於管理的部分?

+0

感謝您的快速反應,你可以分享,多少分辨率或大小是可以接受的? – makki 2012-07-30 10:10:39

+0

這是硬件依賴:S,但一般來說,你應該瞄準屏幕尺寸內的東西,例如。 480x800的hdpi手機。但是,如果你要一次將所有的位圖精靈放在內存中,它可能仍會給你帶來問題。您應該儘量減少連續的內存使用量。 – Warpzit 2012-07-30 10:17:35

+0

我很確定有些精靈只需要偶爾加載一次,這些精靈並不需要一直在內存中,並且可以在需要的時候加載。 – Warpzit 2012-07-30 10:18:28