2012-12-09 88 views
0

我有一個ListView約50行。每個項目都有一個圖像。有時,圖像會被下載,但有時候,我只是從應用程序資源中顯示特定的圖像。與Android位圖2問題

問題:

  1. 有時候,我只是表明從資源約20幅圖片爲我的項目 ,所有的都是相同的圖像。它意味着我只是顯示的圖像 20行中所有相同的。它是加載一個位圖,每個項目的內存數量爲 ?或者它只是加載圖像,並顯示其他項目 ?

  2. imageview的每個項目的大小是100 * 70 dp。所以我想要做 的事情,比如重新設置或縮小圖像dp,然後在我的位圖 中顯示它們並將它們顯示在我的應用程序中,這樣我就可以減少它們所需的RAM的數量。可能嗎 ?

感謝

+0

請顯示一些代碼 – CocoNess

回答

0

顯示同一圖像多次

如果您設置的所有圖像相同的繪製對象(變量),你從資源獲得,只有1位圖繪製對象駐留在內存中。此外,ListView可以循環使用它的行,但它並不真正創建20行,並且所有20位圖都加載到RAM中。

設置圖像

BitmapDrawable類的DPI可自動決定DPI進行渲染,這就是爲什麼它在其constructor請求資源。或者您可以稍後致電setTargetDensity(int)注意:更改DPI與縮放圖像不完全相同。

加載縮小圖像

這肯定會節省RAM,閱讀如何加載縮小圖像Answers