我使用picasso和viewholder模式在我的gridview中加載圖像,但是當我滾動時,gridview的加載不夠流暢。我如何實現這一點,當我滾動gridview只加載佔位符第一,並且當每個圖像加載到給定的「頁面」gridview顯示圖像一個接一個,以一個小的延遲。那麼畢加索有更好的工具嗎?我尋找解決方案,但我找不到任何解決方案。如何在gridview上加載圖像,並在滾動上有一個小延遲?
0
A
回答
0
不確定,如果可以等待每個圖像加載到給定頁面上。然而,在我的一個「寵物」項目中,我實現了以下邏輯 - 顯示佔位符,以及何時加載圖像,它顯示實際圖像(但不是當頁面上的所有圖像,它分別與每個圖像一起工作)。要加載與畢加索我用下一個代碼的圖片:
private def prepareImageView(image: ImageView,
course: Course) = {
Picasso.`with`(context).cancelTag(image)
image.setImageResource(R.drawable.img_session_placeholder)
Picasso.`with`(context)
.load(course.imgUri)
.tag(image)
.into(new Target {
override def onBitmapFailed(errorDrawable: Drawable): Unit = {}
override def onPrepareLoad(placeHolderDrawable: Drawable): Unit = {}
override def onBitmapLoaded(bitmap: Bitmap, from: LoadedFrom): Unit = {
image.setImageBitmap(bitmap)
image.invalidate
}
}
}
代碼是Scala,但我不認爲會有任何問題,將其轉換爲Java。首先,我將佔位符圖像設置爲imageView,以便用戶看到佔位符(R.drawable.img_session_placeholder),稍後Picasso會在下載後立即使用實際圖像更新它。另外不要忘記取消任何與當前ImageView相關的當前圖像下載。
該解決方案提供了快速滾動(因爲使用了本地佔位符)。但是,如果滾動不是很快,那麼在構建每個視圖的邏輯中可能還有其他問題。
相關問題
- 1. 推遲或延遲在單個頁面上加載大圖像
- 2. 延遲加載多個滾動視圖和動態圖像
- 3. 如何在GridView中實現延遲加載圖像
- 4. 延遲加載卡上的圖像
- 5. 動態圖像加載延遲在ios
- 6. 如何在頁面滾動中延遲加載Instagram上的圖片?
- 7. 如何在水平滾動視圖中創建延遲加載
- 8. 如何在iPhone上的UITableView中預加載或延遲加載圖像?
- 9. Android - Gridview圖像在滾動上混合
- 10. 延遲加載UICollectionView圖像
- 11. Javascript延遲圖像加載
- 12. ajax加載圖像延遲?
- 13. 延遲加載PhotoLibrary圖像
- 14. HttpWebRequest圖像加載延遲
- 15. 在Android上的ListView中延遲加載圖像
- 16. 完全無法在jQuery Mobile上延遲加載圖像
- 17. 在Vue/Laravel中延遲加載圖像
- 18. 在UIScrollView中延遲加載圖像
- 19. 在ImageSpan中延遲加載圖像
- 20. 在jQuery Mobile中延遲加載圖像
- 21. 在tableview中延遲加載圖像
- 22. 在ListView中延遲加載圖像
- 23. 延遲加載動態畫面圖像
- 24. 在gridview中的延遲加載
- 25. 使用dispatch_sync在uicollectionview上延遲加載
- 26. 在我的網站上加載延遲
- 27. 如何從JSON中延遲加載圖像以在Android GridView中預覽?
- 28. jQuery - 在窗口滾動上運行一個沒有任何延遲的函數
- 29. 延遲加載的UIScrollView - 如何在一個滾動視圖這樣滾動平滑
- 30. 如何在特定的滑塊圖像上加載延遲的模態?