我在我的应用程序中使用毕加索的列表视图,我面临的问题是,当我加载图像与Picasso.with(context).load("file:///path/to/image/in/SD").into(imageView)
和滚动listvie,w加载的图像推动列表向上或者在图像加载时向下,下面描述了我想说的内容。毕加索的图像占位符 - Android
item 1
========
item 2
========
item 3
现在让我们说我向上滚动和列表停在15位置
item 15 ///Picasso started loading the image but the image isn't ready yet
========
item 16
========
item 17
item 15 //after few milliseconds the image is loaded into the image view
image view is loaded and pushed the list down
---------
| |
| |
| |
---------
========
item 16
========
item 17
我已经都保存在本地与他们在DB路径的图像。 Facebook在使用灰色图像的地方做得非常好,然后他们使用灰色占位符的相同尺寸加载图像,并且btw占位符根据图像进行更改。
问题是如何将一个像黑色或灰色图像一样的占位符作为占位符,并具有与加载完成后将要加载的图像的相同尺寸的占位符,以便在不推送列表的情况下替换它?
请注意,使用.placeholder()不好,因为尺寸不会相同。
您可以设置imageViews的最小和最大尺寸。这种方式,并与占位符,名单不会'跳'。但是,为了提供一个占位符,其大小取决于要加载的图像的大小,因此需要首先获取图像的大小。你也可以这样做。预取所有图片大小,相应地添加占位符并延迟加载图片。 – JacksOnF1re