我正在使用Firebase存储,实时数据库构建Android应用程序,几乎所有内容 . 该应用程序将允许用户上传图像,其他用户可以查看这些图像 . 目前我正在使用插件来调整图像大小并裁剪图像,然后在Firebase存储桶中存储该图像的800x800分辨率版本,这就是其他用户所看到的 . 它运行良好,但我想删除800x800分辨率限制,以便具有高分辨率的设备的用户可以看到更高质量的图像 . 问题是,我无法弄清楚最佳流程是什么 . 目前,我使用Glide库来处理从firebase存储中获取downloadURL后加载图像 . 我想做的是允许应用程序加载图像的低分辨率版本,例如当用户首次将图像滚动到视图中时,它会快速将小的200x200分辨率图像加载到视图中,但随后加载后台的全尺寸分辨率 . 一旦完成全分辨率下载,它将用低分辨率的分辨率替换为低分辨率的分辨率 .
我已经看过像Instagram这样的应用程序,如果用户上传了一个非常高质量的图像,当你第一次将该帖子滚动到视图中时,图片会像素化并且不那么好,但是在第二或第二个图像之后真的很高品质 . 我可以使用Firebase函数处理支持的逻辑,以便在上传图像后调整图像大小并存储2种不同的分辨率 . 我真的卡在它的加载端 . 我搜索,搜索和搜索,我真的找不到它 . 有很多关于你为什么要这样做的文章,但我找不到任何关于你如何实际完成这项任务的真实例子 .
目前我的图像以极其简单,文档推荐的方式加载...
Glide.with(this).load(imageURL).into(imageView);
我真的可以使用一些帮助来解决如何处理低分辨率图像,然后在项目处于视图中一秒钟之后的高分辨率图像 . 谢谢 .
2 回答
您可以先加载低分辨率,因为您知道它会相当快,然后在加载低分辨率图像后加载高分辨率图像 .
使用Glide 4.X您可以简单地调用
.thumbnail("quality you want to load")
,您不需要为单个图像维护2个URL .希望它会对你有所帮助 .