簡體   English   中英

Android - 背景圖片占用太多內存

[英]Android - background images take too much memory

在我的游戲中,我有3個活動:主菜單 - >子菜單 - >游戲屏幕。 因此,當用戶在游戲屏幕中玩游戲時,前兩個活動處於非活動狀態,但未被銷毀。

每個布局都有一個很好的背景圖像。 圖像本身非常小(40k),但在大屏幕(比如Galaxy平板電腦)上,它需要幾兆的內存。 從前兩個活動中刪除背景后,第三個活動的內存使用量從18M降至13M!

有沒有辦法保持背景並恢復所有這些浪費的記憶?

由於布局中的背景圖像,我遇到了類似的問題。 圖像的內存分配的正常大小應為height * width * 4字節(在模式ARGB_8888中,默認模式)。

如果您在展示活動時看到並分配了18MB,則必定存在一些問題。 檢查是否將背景圖像放在drawable文件夾中。 在這種情況下,系統必須將該圖像縮放到屏幕的特定密度,從而導致大量內存開銷。

解決方案:

  1. 在每個可繪制文件夾(mdpi,hdpi,xhdpi ...)中放置特定版本的背景圖像,這樣系統就不必執行任何縮放過程。
  2. 將背景圖像放在名為“drawable-nodpi”的特殊資源文件夾中。 系統不會嘗試縮放放在此目錄中的圖像,因此只執行拉伸過程並且分配的內存將是預期的。

答案中的更多信息

希望這可以幫助。

我認為我的問題與您的問題相同,這個解決方案會對您有所幫助。

為什么普通圖片分配了大量內存?

你可以使用/ res / drawable-nodpi,背景pictrue只占用一半的內存大小。

為什么在開始新活動(C)時沒有完成以前的活動。 然后,您可以覆蓋活動C中的onKeyDown方法以啟動上一個活動(B)

我建議在你的活動中覆蓋onPause()或onStop()。 在那里,你可以釋放背景(通過調用layout.setBackgroundDrawable(null))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM