如何在Android的ImageView中像Pinterest一样实现占位图?

5
我在我的Android应用程序中使用了Picasso,其中包含许多图像。它的运行良好且外观不错。我正在尝试使UI更加简单和用户友好。在实际图像加载之前,我为我的ImageViews设置了占位符。但是它的颜色是白色的。我希望根据图片的主要颜色来设置占位符图片,就像Pinterest一样。
Pinterest在主图像加载之前显示占位符图像。以下是截图: enter image description here 当图像加载后,它会根据占位符显示的主要背景色显示正确的图像: enter image description here 在Square提供的Picasso库中是否可以实现这一点,或者有什么方法可以实现?
请帮忙。

请在此处尝试搜索:http://square.github.io/picasso/ - Haresh Chhelana
我进行了研究,但没有找到任何具体信息。它们有占位符选项,但并没有针对我想要实现的内容做出具体说明。 - virendrao
@user3549273 没有找到时间,之后就放弃了。 - virendrao
2个回答

1
有点晚了,但是对于其他想要实现类似功能的读者,我会在这里留下一些信息。我不知道Pinterest是如何实现的,可能是他们自己开发的。但是Google更新了v7支持库,并加入了“Palette”,这是一个新的API,允许你从提供的图像位图中提取突出颜色。

编辑:我刚刚意识到这可能对于占位符没有帮助,因为你需要一张图片才能获取颜色!所以我最好的猜测是Pinterest从服务器中提取颜色,并将颜色包含在发送到客户端的(可能是)JSON响应中。

我自己没有使用过它,但从我看到/阅读到的来看,它工作得相当不错。你可以在以下两个地方了解更多信息:

开发人员文档
教程/说明(Willow Tree Apps)


如果我想要将其用作占位符,我需要为每种颜色保留图像。 - virendrao
你如何提取尚未加载的图像的颜色? - Michael

0

你只能通过在保存图像时将其显著颜色保存到数据库中,然后在以后检索它来实现这一点。

https://pypi.org/project/extcolors/ 是一个非常易于使用的 Python 库,可以从图像中提取颜色。

或者你可以使用 https://github.com/woltapp/blurhash 这个库来实现。

Easy library This too, it's easy

无论哪种方式,您都需要首先将BlurHash或颜色作为元数据保存在数据库中,然后当用户请求数据时,您将发送其中之一并显示它们,直到数据完全下载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接