2016-07-22 58 views
0

我使用Android交錯網格呈現圖像行(幾乎所有圖像都具有相同的大小)。它顯示每個屏幕高度近15幅圖像。 沒有圖像(只是佔位符)的滾動效果很好,但對他們來說,它變得笨手笨腳。我使用暫停\恢復技術,但它沒有多大幫助。此外,我將它釘在骨架上,以避免可能泄露的額外數據。如何減少回收站與畢加索滾動的GC呼叫?

經常發生的唯一問題是GC調用。似乎這是我問題的根源。我認爲它沒有使用位圖,因爲viewholder在這裏是可重用的。

你有什麼想法如何減少這種情況下GC調用的頻率?

+0

恰恰是你失去了卷軸上的圖像,但是當你回到某個項目而沒有任何活動轉換時,它們會延遲迴來。 – nobalG

+0

lugginess是畢加索的緩存機制,試圖加載圖像。按照您的需要實施適當的緩存,並且alos刪除淡入淡出的動畫,它可以幫助跳躍 – Kushan

+0

延遲在畢加索幾乎肯定不是問題。如果你發佈你的代碼,也許有人可以給你具體的建議。 –

回答

0

您無法控制GC。但是,爲了減少gc調用的數量,您可以在畢加索中查看適當的內存緩存。

還要確保圖像不是很大,它們應該大致與您的視圖大小相同。您也可以考慮使用OKHTTP來實現光盤緩存解決方案。

請查看我爲控制內存和磁盤緩存大小所做的自定義picasso實現。如果涉及到這一點,還可以使用一種方法清除這兩個緩存。 (見非接受的答案我的更新答案)

Limiting Square Picasso's cache size to 60MB max

然而大量的研究後,我的結論是畢加索是不是很有效,內存和我現在用的壁畫。從我所見過的內存佔用情況來看,它比畢加索要平滑得多。