我对小工具有了一个想法,当我点击小工具时,文本&图像将随机刷新。我用文本完成了这个,但是我的图像存储在Firebase上,我想拍摄这些随机图像并将它们显示在ImageView中。那么我该怎么做呢?
我的Firebase存储截图:
我的应用的屏幕截图:
答案 0 :(得分:0)
要从Firebase存储中随机选择图像,您需要在某处获得文件的下载URL列表。如this answer中所述,目前没有Api可以获取这些图片的列表,因此您必须将它们的网址存储在某处。
这样做的一种可能性就是简单地添加网址 的文件到Firebase数据库。 如果要选择随机图像,可以浏览数据库, 并从此列表中选择一个随机网址。
要在ImageView中实际显示它们,您可以使用像Glide这样的库来简化此过程。 Firebase的FriendlyPix示例App显示了如何执行此操作。
答案 1 :(得分:0)
作为@ Bernd答案的替代方案:您可以使用增量编号将图像名称修改为标准命名方案。然后,您可以动态检索图像URL,如下所示:
Example image names:
image_0.jpg
image_1.jpg
image_2.jpg
image_3.jpg
生成随机图像文件路径的一些示例Java代码:
//The amount of images you have stored
int maxImages = 4; //Amount of images
Random random = new Random();
//Randomly generate a filepath to an image
String imageFilePath = "image_" + random.nextInt(maxImages) + ".jpg";
然后,您可以将生成的imageFilePath
与FireBase Storage getDownloadUrl()
一起使用,以检索正确的下载网址。然后,您可以将URL传递给Glide,Picasso或其他图像下载库,以将其加载到ImageView中。
<强>优点强>
只需使用Firebase存储即可实现目标
数据库开销减少,不必维护图像列表
<强>缺点强>
您必须严格控制图像名称,不得使用自定义图像名称
您必须拥有固定数量的图片
如果删除图像而不更改其他图像名称,则可能会中断
如果无法找到图像(例如,如果随机数超出范围),则检索网址会引发异常