【发布时间】:2018-05-02 23:38:20
【问题描述】:
我正在使用 Firebase 存储、实时数据库以及几乎所有东西构建一个 Android 应用程序。该应用程序将允许用户上传图片,并允许其他用户查看这些图片。目前我正在使用一个插件来调整图像大小和裁剪图像,然后将该图像的 800x800 分辨率版本存储在 Firebase 存储桶中,这就是其他用户所看到的。它运作良好,但我想删除 800x800 分辨率限制,以便使用高分辨率设备的用户可以看到质量更好的图像。问题是,我无法弄清楚最好的流程是什么。 目前,一旦我从 firebase 存储中获得了 downloadURL,我正在使用 Glide 库来处理加载图像。我想做的是让应用程序加载图像的低分辨率版本,比如当用户第一次将该图像滚动到视图中时,它会快速将一个 200x200 分辨率的小图像加载到视图中,但随后正在加载背景中的全尺寸分辨率。下载完完整分辨率的文件后,它将用完整分辨率的文件替换低质量的文件。
我在 Instagram 之类的应用中看到过类似的情况,如果用户上传了非常高质量的图片,当您第一次滚动该帖子进入视图时,图片会像素化并且不是那么好,但在一两秒后图像质量真的很高。 我可以使用 Firebase 函数处理支持的逻辑,以在上传图像后调整图像大小并存储 2 种不同的分辨率。我只是真的停留在它的加载端。我已经搜索,搜索和搜索,但我真的找不到太多关于它的信息。有很多关于为什么要这样做的文章,但我找不到任何真实的例子来说明你将如何实际完成这样的任务。
目前我的图片加载非常简单,文档推荐的方式...
Glide.with(this).load(imageURL).into(imageView);
我真的可以使用一些帮助来处理如何首先加载低分辨率图像,然后在项目显示一秒钟后加载高分辨率图像。谢谢。
【问题讨论】:
标签: android image firebase-storage android-glide