0
我正在嘗試爲android編寫一個簡單的應用程序。我試圖預先載入每個大小爲〜75KB和分辨率爲768x480的7 jpg圖像。在HTC Flyer上運行時,它運行良好。在HTC Evo 3D上運行時,它會崩潰。顯然我分配太多memeory:Android SDK - 預加載小圖像會讓我的應用程序超出內存
1658880-byte external allocation too large for this process.
Out of memory: Heap Size=6663KB, Allocated=4297KB, Bitmap Size=25278KB, Limit=32768KB
Trim info: Footprint=6663KB, Allowed Footprint=6663KB, Trimmed=452KB
VM won't let us allocate 1658880 bytes
Clamp target GC heap from 33.136MB to 32.000MB
這似乎很奇怪。我應該創造更小的圖像?我認爲今天的高分辨率屏幕似乎不太可能。我想擴大堆大小?那麼只有Android 3.0才支持。什麼是適當的解決方案? Btw。我用預載圖片的代碼是:
stringsImages = new Drawable[]{
getResources().getDrawable(R.drawable.strings0),
getResources().getDrawable(R.drawable.strings1),
getResources().getDrawable(R.drawable.strings2),
getResources().getDrawable(R.drawable.strings3),
getResources().getDrawable(R.drawable.strings4),
getResources().getDrawable(R.drawable.strings5),
getResources().getDrawable(R.drawable.strings6)
};
就一定要避免我也使用5MB〜還對音頻數據進行計算的計算可能出現的混亂。
不敢我問你爲什麼要預載的圖片?爲什麼不能在需要時加載它們? – 2012-02-28 00:11:29
Wellcome這些圖像經常互換,因爲它們反映的音頻屬性正在迅速變化。 – siemanko 2012-02-28 00:39:15