我正在使用Picasso將圖像加載到ListView單元格中,並且當前使用佔位符圖像。所以,當用戶向下滾動時,ImageView中的佔位符圖像被替換爲需要在那裏的真實圖像(來自URL)。然而,加載真實圖像/替換佔位符圖像的過程不會發生,直到單元處於屏幕的視野中,這意味着用戶不斷看到佔位符圖像變爲真實圖像。有沒有辦法讓這個過程在屏幕外完成,以便用戶不會看到並獲得更好的用戶體驗?在行可見之前讓畢加索加載圖像
回答
您可以使用fetch()方法熱身緩存
Picasso.with(context).load(urlToPrefetch).fetch();
注意,這恰恰是最努力的基礎。根據您的配置,緩存可能會在您確實需要之前刪除,即使存在磁盤緩存,Picasso也會顯示佔位符,直到它處理映像(儘管它必須比使用遠程服務器加載映像時更快完成)。
你有這樣的例子。我目前正在使用這樣的東西加載它:Picasso.with(parentFragment.getActivity()) .load(category.getCategoryIconUrl()) .placeholder(R.drawable.placeholder_icon) .into(viewHolder.categoryIcon); –
但是您的示例不會a)指定佔位符圖像或b)將獲取的圖像加載到的圖像視圖。 –
是的,所以這是「讓畢加索在行之前加載圖像可見」的答案。 您可以預先調用fetch()方法(例如,甚至在用戶顯示listview之前)。圖像加載到緩存中,然後在適配器的onGetView方法中,您將調用相同的 Picasso.with(parentFragment.getActivity()).load(category.getCategoryIconUrl()).placeholder(R.drawable.placeholder_icon).into( viewHolder.categoryIcon); 然後,下載HTTP客戶端不需要發出網絡請求,而只需從緩存中讀取,這樣您就可以縮短顯示佔位符的時間 – Kazuki
- 1. 畢加索圖像加載以前緩存圖像
- 2. 回收畢加索圖像加載器
- 3. 加載圖像與畢加索
- 4. 實施畢加索不加載圖像
- 5. 循環畢加索加載url圖像
- 6. 畢加索圖像未加載Gridview Android
- 7. 加載之前的畢加索圖片url查找
- 8. 畢加索圖像未在第一次運行時加載
- 9. 保存圖像在SD卡後畢加索加載圖像
- 10. 在使控件可見之前在PictureBox中加載圖像
- 11. 畢加索大圖像下載
- 12. 畢加索下載隨機圖像
- 13. 無法加載圖像在Android使用畢加索圖書館
- 14. 畢加索圖像重新加載滾動在列表視圖
- 15. 畢加索重複圖像
- 16. 畢加索圖像緩存
- 17. 在ImageViews中加載畢加索的圖像在GridLayout中溢出?
- 18. 通用圖像加載器和畢加索不加載一些圖像的URL
- 19. 畢加索不加載更新的圖像從Web在Android
- 20. 無法在加載畢加索圖像後隱藏進度條?
- 21. 畢加索僅在BaseAdapter中加載一個圖像
- 22. 在加載圖像時淡入動畫使用畢加索
- 23. 畢加索在第一次來電時不會加載圖像
- 24. 畢加索在無網絡時無法加載緩存圖像
- 25. 加載圖像失敗,畢加索在Android 7.1
- 26. ListView僅在第一次加載畢加索圖像時滯後
- 27. 加載位圖與畢加索到ImageView
- 28. 畢加索圖片未加載
- 29. 畢加索未加載圖片
- 30. 圖片懶加載與畢加索
你需要找到一種方法來在列表視圖中看到更多的視圖 –
你會怎麼做呢?據我所知,ListView並不具備與ViewPager相同的功能,您可以在其中實際定義左右刷卡的離線視圖數量。 –
我認爲這個問題的標題有點不準確。我在下面的答案解決了如何「讓畢加索在行可見之前加載圖像」,但看起來您真正想知道的是「如何在可見之前準備列表項視圖」。我不知道ListView是否可能。您可能想要使用RecyclerView,而不是http://developer.android.com/reference/android/support/v7/widget/RecyclerView.html – Kazuki