[問題] out of memory?

看板AndroidDev作者 (nahgnimiast)時間11年前 (2012/12/07 22:30), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/1
我設定了全局的背景圖,還有請多使用selector設定圖片的按鈕。 <relative layout android:background="@drawable/bg" /> 結果發生了out of memory的訊息,試過把上面這句拿掉 就不會發生錯誤。 上網查了之後,大多數都是在說bitmap要怎麼取之類的 問請有沒有人知道要如何處理設寫在xml的圖檔方法? 或是設定背景圖有更好的方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.69.1

12/07 22:57, , 1F
是不是你的背景圖真的太大了? 還是你的selector灌太多圖
12/07 22:57, 1F

12/07 23:19, , 2F
我覺得不完全是背景圖的關係 背景圖應該只是剛好
12/07 23:19, 2F

12/07 23:20, , 3F
踩到 OOM 的上限而已 也就是說可能要從別的地方改善
12/07 23:20, 3F

12/07 23:56, , 4F
背景圖太大,轉個檔就好
12/07 23:56, 4F
問一下我看如果動態設定backgroupd時,可以先轉出比轉小的bitmap再設給UI(原圖 檔比較大) 可以如果直接寫在xml中,android會做這個動作嗎?如果不會我想我需要全部用動態來寫 看會不會改善。 開兩個activity就吃掉30多M 背景圖 800 x 1280,吃到記憶中是多少MB? 1bytes x 800 x 1280 還是 4bytes * 800 x 1280 ※ 編輯: tsaiminghan 來自: 220.136.69.1 (12/08 00:57)

12/08 02:09, , 5F
google "eclipse MAT" 對於釐清mem 使用有點幫助
12/08 02:09, 5F

12/08 02:38, , 6F
應該是你載入太多圖,有使用到ListView或Gallery?
12/08 02:38, 6F
沒用到,但是有背景圖,和許多有selector的按鈕,另外就是進入程式後 在oncreate有對一些View(有背景圖)重新設定長寬(利用layoutparams動態計算新的大小) 查到一些資料,先試試看有沒有用。 http://blog.csdn.net/micro_rat/article/details/6307067 http://www03.eyny.com/thread-8132236-1-1.html http://www.myexception.cn/android/752138.html http://www.linuxidc.com/Linux/2011-08/41274p2.htm http://stackoverflow.com/questions/6092862/ will-calling-finish-from-an-activity-free-up-my-memory-space http://stackoverflow.com/questions/5001682/ android-memory-management-in-activity-lifecycle http://stackoverflow.com/questions/9248920/ drawables-resources-management-in-android ※ 編輯: tsaiminghan 來自: 220.136.69.1 (12/08 03:38)

12/08 11:42, , 7F
你背景圖太大了啦
12/08 11:42, 7F
增加一個網站,比較完整詳細 http://my.oschina.net/ryanhoo/blog/93285 比上面簡單,但是也蠻清楚的。 使用softrefence來取得bitmap http://www.longerian.me/?p=28 將seletor由xml改用java code的方法 (seletor對應的是StateListDrawable) http://stackoverflow.com/questions/11242735/ change-xml-selector-values-from-java-code ※ 編輯: tsaiminghan 來自: 220.136.49.29 (12/09 21:22)
文章代碼(AID): #1GmVrlOh (AndroidDev)