2014-02-10 49 views
-2

我使用功能setBackgroundResource(R.drawable.image)很多。Android獲取OutOfMemoryError

我有7個按鈕,並且想要在聚焦時更改背景。使用選擇器,我猜不會工作,因爲用戶可以點擊其他視圖,我的按鈕都不會焦點。

問題:我在這裏得到一個OutOfMemoryError異常:

 but.setBackgroundResource(resIdNew); 

     current_b_selection.setBackgroundResource(id_res_back); 

我覺得我的方式做到這一點是錯誤的,但我真的不明白有什麼好的做法在這裏。

+0

http://stackoverflow.com/questions/11820266/android-bitmapfactory-decodestream-out-of-memory-with-a-400kb-file-with-2mb-f http://blogs.innovationm。 com/android-out-of-memory-error-causes-solutions-and-best-practices/ – user2450263

+1

這是因爲你的圖像是非常高分辨率的圖像。這就是爲什麼。縮放它。 – Piyush

+0

快速修復您可以試試這個:http://stackoverflow.com/a/14359170/1012284 –

回答

2

錯誤是自我解釋,你的圖像或圖像太大,嘗試最多10kb的東西。這將幫助您節省內存。如果您在仿真器上進行測試,則此錯誤很常見。如果是這樣,那麼請轉到設備管理器上的特定仿真器設備,然後單擊編輯,然後增加內存,並根據需要添加內部內存以及堆大小。那麼對於我來說,我只是先在真實的設備上進行測試,如果同樣的問題仍然存在,那麼我將不得不重新審視我的圖像的大小。

+0

'最大10kb'-所以你的意思是一個約50像素的平方米圖像?文件大小與需要多少內存無關。 – Simon

+1

我認爲文件大小總是依賴於像素數量。只是努力降低像素合理的東西。像素大小是多少? –

+0

更小的圖像釘它!謝謝 –

0

試試這個:

在您的清單文件的應用程序標籤,添加一個屬性:

android:largeHeap="true"。看看它是否刪除OutOfMemoryError或不...