2011-10-26 114 views
1

在我的應用程序中有很多圖片資源。用於動畫和嵌入式圖庫。我的問題是 - 在哪裏存儲資源? 我必須將該數據與應用程序綁定 - 在安裝過程中不需要下載。 目前我所有的圖像都存儲在可繪製的文件夾中。但是,例如,當我嘗試獲取圖片庫(網格視圖)時,我得到了內存異常。當我嘗試運行動畫時,也會發生這種情況。安卓商店應用程序圖片

我應該將圖像存儲在SD卡中,並在需要時加載它。然後從內存中釋放資源。 怎麼做 - 把資源放在assets/raw中,然後保存在SD卡中?然後加載它?

請幫我這個。

回答

0

有與此相關的許多做題:

Save bitmap to location

How do I transfer an image from its URL to the SD card?

不過,這不會解決你的OutOfMemoryProblem。在這種情況下,這很可能是因爲圖像太大。您可以在安裝應用程序之前縮小它們。另一種方法是通過編程來調整它們的大小。

+0

不確定是否以編程方式調整它們的大小會非常有用 - 在縮小它之前,您仍然必須加載大圖像。 – Elemental

+0

雖然一次一個。它比所有大幅圖像都好。 – DeeV

+0

如何將我的資源打包到zip文件夾中,並將其放入資源文件夾中。當應用程序第一次運行 - 郵政內容保存在SD卡和圖像從SD卡讀取 - 我會保存一些內存嗎?我不必將所有圖像存儲在可繪製的圖像中,只需加載需要的內容時,我就可以獲得 - 免費資源。你怎麼看待這件事 ? – Bandzio

0

在我看來,你想要的方式包括在繪圖中的圖像是方便和實用的。

但是,如果圖像太大以至於無法同時將它們加載到內存中,則會出現不同的問題。

我會做的是檢查出內存是由圖像的大小的第一件事情 - 嘗試使圖像更小,看看你得到一個類似的錯誤,那麼你知道你的應用程序可能是做一些可怕的事情(加載或顯示內存泄漏?)。

如果圖像大小是問題,但是應用程序啓動正確,那麼您需要制定一個計劃,只從需要顯示的資源加載圖像(而不是在顯示之前加載所有圖像任何),並在圖像不再需要時處置這些資源。

根據你的情況和上下文,有幾種很好理解的方法用於這種延遲加載,需要一些緩衝。

相關問題