我使用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. 如何在iPhone上的UITableView中预加载或延迟加载图像?
- 4. Android - Gridview图像在滚动上混合
- 5. Javascript延迟图像加载
- 6. 延迟加载UICollectionView图像
- 7. 延迟加载PhotoLibrary图像
- 8. ajax加载图像延迟?
- 9. 在Android上的ListView中延迟加载图像
- 10. 完全无法在jQuery Mobile上延迟加载图像
- 11. 在ImageSpan中延迟加载图像
- 12. 在UIScrollView中延迟加载图像
- 13. 在Vue/Laravel中延迟加载图像
- 14. 在jQuery Mobile中延迟加载图像
- 15. 如何从JSON中延迟加载图像以在Android GridView中预览?
- 16. 如何在特定的滑块图像上加载延迟的模态?
- 17. 如何在gridview上添加图像?
- 18. JS在屏幕上移动图像并在末尾加载另一个图像
- 19. 在一段文字上延迟自动滚动效果
- 20. jQuery - 延迟加载功能w /滚动
- 21. 在我的网站上滚动时如何减少延迟?
- 22. Android - GridView滚动正在通用图像加载器中重新加载图像
- 23. 如何在webview中延迟加载图像android
- 24. 如何在延迟加载时使图像可见
- 25. 在图像视图中显示两个以上图像,并在它们之间存在延迟活动
- 26. 延迟加载我的网页上的图像
- 27. 延迟加载? /只在视口中可见时加载图像
- 28. 延迟加载滚动图片和“进入视图”
- 29. 上下文在Datamapper中延迟加载 - 如何?
- 30. 在地图视图中延迟加载?