2016-03-08 18 views
0

我正在一個Android應用程序中獲取我的數據,其中包括從數據庫中存儲爲blob的圖像,然後一旦我在應用程序中獲取這些數據,我將所有這些數據轉換爲位圖,並將數據存儲在ArrayList供以後使用。當爲二十打圖像做這件事時,大約需要8秒;我怎樣才能更快地創建位圖。圖像高度不同。在for循環中,我將圖像字符串轉換爲一個字節數組,然後使用BitmapFactory.decodeByteArray。我也使用options.inSampleSize = 4.如何在Android中更快地創建位圖?

+0

如果你在那樣的行解碼大量的圖片,你可能需要找到一種新的方式來做事。這將需要大量的內存並導致OOM問題。特別是如果你「存儲在ArrayList中供以後使用」。如果您現在或未來幾秒內沒有使用它們,則不應該加載它們。 –

+0

我正在用這些項目填充一個列表,所以我需要在當時加載所有這些項目。有沒有更好的方法來做到這一點? – user3705359

+0

延遲加載。保存稍後加載項目所需的信息,並僅在需要時加載它。位圖很大。它們在內存中佔用4 *寬*高字節。保留幾個小的不是什麼大不了的,但保留所有這些都是麻煩。延遲加載會稍後爲您節省大量的OOM錯誤,並修復您的perf錯誤(因爲您只會在需要時分散加載並執行加載)。最好與高速緩存結合使用(LRU高速緩存可以具有最大大小,因此您不會在圖像上使用超過預定義的最大內存量)。 –

回答

相關問題