如何从 Firebase 存储中制作图像数组?
How can I make array of image from Firebase storage?
我对小部件有一个想法,当我点击小部件时,文本和图像会随机刷新。我已经用文本完成了此操作,但我的图像存储在 Firebase 上,我想拍摄这些随机图像并将它们显示在 ImageView 中。那我该怎么做呢?
我的 Firebase 存储的屏幕截图:
我的应用截图:
要从 Firebase 存储中随机 select 一张图片,您需要在某处有一份下载 url 文件的列表。如 中所述,目前没有 Api 获取这些图片的列表,因此您必须将它们的 url 存储在某个地方。
一种可能性是简单地添加 urls
的文件到 Firebase 数据库。
当你想要 select 一张随机图片时,你可以通过数据库,
和 select 此列表中的随机 url。
要在 ImageView 中实际显示它们,您可以使用像 Glide 这样的库来简化此过程。 FriendlyPix Firebase 的示例应用程序展示了如何执行此操作。
作为@Bernd 回答的替代方案:您可以使用递增数字将图像名称修改为标准命名方案。然后,您可以动态检索图像 URLs,如下所示:
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 存储的 getDownloadUrl()
来检索正确的下载 URL。然后,您可以将 URL 传递给 Glide、Picasso 或其他图像下载库,以将其加载到您的 ImageView 中。
优势
只需使用 Firebase 存储即可实现您的目标
减少数据库开销,不必在那里维护图像列表
缺点
你必须严格控制图像名称,不能自定义图像名称
您必须有固定数量的图像
如果您删除一个图像而不更改其他图像名称,可能会中断
如果找不到图像(例如,如果随机数超出范围),检索 URL 将抛出异常
我对小部件有一个想法,当我点击小部件时,文本和图像会随机刷新。我已经用文本完成了此操作,但我的图像存储在 Firebase 上,我想拍摄这些随机图像并将它们显示在 ImageView 中。那我该怎么做呢?
我的 Firebase 存储的屏幕截图:
我的应用截图:
要从 Firebase 存储中随机 select 一张图片,您需要在某处有一份下载 url 文件的列表。如
一种可能性是简单地添加 urls 的文件到 Firebase 数据库。 当你想要 select 一张随机图片时,你可以通过数据库, 和 select 此列表中的随机 url。
要在 ImageView 中实际显示它们,您可以使用像 Glide 这样的库来简化此过程。 FriendlyPix Firebase 的示例应用程序展示了如何执行此操作。
作为@Bernd 回答的替代方案:您可以使用递增数字将图像名称修改为标准命名方案。然后,您可以动态检索图像 URLs,如下所示:
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 存储的 getDownloadUrl()
来检索正确的下载 URL。然后,您可以将 URL 传递给 Glide、Picasso 或其他图像下载库,以将其加载到您的 ImageView 中。
优势
只需使用 Firebase 存储即可实现您的目标
减少数据库开销,不必在那里维护图像列表
缺点
你必须严格控制图像名称,不能自定义图像名称
您必须有固定数量的图像
如果您删除一个图像而不更改其他图像名称,可能会中断
如果找不到图像(例如,如果随机数超出范围),检索 URL 将抛出异常