2012-06-23 35 views
1

偶爾我收到錯誤消息「位圖大小超出虛擬機預算」。它發生在我每個活動持有一張500x300 PNG圖片時,接連打開20個活動。當我用android:background =「@ drawable/xxxxxxxx」在我的XML佈局中實現圖片時,我沒有問題。「位圖大小超過虛擬機預算」

當我在我的Java代碼中實現圖片時,該錯誤首次發生。

<ImageView 
android:id="@+id/ImVpic" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"/> 

ImageView pic; 
pic = (ImageView)findViewById(R.id.ImVpic); 
pic.setImageResource(R.drawable.picture); 

我該如何擺脫那個錯誤?我的代碼中缺少什麼?我的意思是它確實有效,但不時它會拋出真正煩人的錯誤。

回答

0

這是你在SO上看到的非常常見的問題。看起來在加載圖像時,可用內存很低。確保你沒有保留圖像的長引用,這允許達爾維克從未使用的圖像(或)對象中回收內存。

+0

實際上我的圖片的參考文獻非常短(4個字母)。你確定這是問題嗎?我的意思是即使參考文獻很短,應用程序仍然崩潰。 – JohnD

+0

這不是關於參考大小。如果您的參考指向「對象」那個對象不符合GC的條件。 – kosa

+0

我的參考文獻沒有指向Object,是嗎? – JohnD

相關問題