在低內存設備中使用位圖處理非常長的列表視圖的最佳方式是什麼?我滾動了一下之後發生崩潰......我不想失去圖像質量......我只想加載可用內存中可能的項目數量,但這顯然是一個不好的解決方案。我是否必須根據位置手動回收位圖,在getView()中?這是處理這個問題的方法嗎?使用位圖的列表視圖中的內存問題
我的目標是API 7.
在此先感謝。
P.S.位圖使用HTTP從遠程服務器加載。
在低內存設備中使用位圖處理非常長的列表視圖的最佳方式是什麼?我滾動了一下之後發生崩潰......我不想失去圖像質量......我只想加載可用內存中可能的項目數量,但這顯然是一個不好的解決方案。我是否必須根據位置手動回收位圖,在getView()中?這是處理這個問題的方法嗎?使用位圖的列表視圖中的內存問題
我的目標是API 7.
在此先感謝。
P.S.位圖使用HTTP從遠程服務器加載。
您是否在getView()
方法中回收您的意見? 如果不是,那接下來的事情:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(mInflater == null){
mInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
View viewItem = convertView;
if(viewItem == null)
viewItem = mInflater.inflate("YOUR_LAYOUT", null);
//Continue with your code but use viewItem as the view of the list view line, that way you don't always create new instance of it. This is what helped me in the same problem.
編輯:查了下帖子,可能是它可以幫助你。
萬一你沒有看過它,[這篇文章在Android開發者網站(http://developer.android.com/training/displaying-bitmaps/ index.html)涵蓋了很多與此問題相關的一般問題。它可能不夠具體,以幫助你(因爲你提到你有一個低存儲設備作爲目標)。 – Joe 2012-07-15 12:58:23
我已經讀過,但至少目前它並沒有給我一個關於如何解決這個問題的具體想法。 – Ixx 2012-07-15 13:02:43