【问题标题】:How to save images from Firebase DB to a drawable list on Android?如何将图像从 Firebase DB 保存到 Android 上的可绘制列表?
【发布时间】:2017-05-08 23:14:33
【问题描述】:

我的 Android 代码有问题。我正在Android上开发游戏。我首先将图像存储在资源文件中。但现在我想将它们存储在 Firebase 上。我的计划是使用 Picasso 下载它们并将它们添加到 Arraylist。但它没有返回仅可绘制对象的方法。我尝试获取 BitMap 并将其转换为可绘制对象,但没有成功。

    flagImages=new ArrayList<Drawable>();
    flagImages.add(getResources().getDrawable(R.drawable.flag1));
    flagImages.add(getResources().getDrawable(R.drawable.flag2));
    flagImages.add(getResources().getDrawable(R.drawable.flag3));

我想更改上面的代码。你有什么想法?我应该使用什么?我的主要目标是将图像放入我的 ArrayList。

【问题讨论】:

  • 将图片上传到firebase存储中,然后将url保存在firebase中,另外,我建议glide然后picasso,特别是内存性能
  • 但是如何下载数据呢?我应该使用位图吗?因此滑翔和毕加索不输出可绘制对象
  • 此链接指向可绘制资源stackoverflow.com/a/45328201/5973946中的所有 Firebase 列表数据和图像

标签: android firebase firebase-realtime-database picasso


【解决方案1】:

第 1 步:将所有图片上传到 Firebase Storage。上传的每张图片都有一个特定的reference,您可以将其保存在名为links 的节点下的Firebase Database 中。

第 2 步:在 link 节点上附加一个 listener 并获取您图片的所有引用。

Step3:您将需要此构建依赖项:

compile 'com.firebaseui:firebase-ui-storage:1.2.0'
compile 'com.firebaseui:firebase-ui-database:1.2.0'
compile 'com.github.bumptech.glide:glide:3.7.0'

Step4:使用Glide而不是PicassoFirebaseStorageReference加载图像。

Glide.with(MainActivity.this)
    .using(new FirebaseImageLoader()) // <== ADD THIS
    .load(storageReference)
    .signature(new StringSignature(localFile.length() + "@" + localFile.lastModified()))
    .into(images.get(i));

第 5 步:将您的图片添加到您的 ArrayList

【讨论】:

    猜你喜欢
    • 2012-05-20
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多