java - 如何在 android 中使用 Firebase 数据库中的图像填充 ListView ?

标签 java android firebase firebase-realtime-database firebase-storage

我已将 Firebase 存储中图像的链接存储到我的 Firebase 数据库中。我的数据库的 JSON 结构是这样的:

|
 --- users
 |
 |
    ---- uid1
 |  |
 |   -- uid1
 |  |
 |   -- name
 |  |
 |   -- imageURL
 |  |
 |
 |
  -- uid2

我想要做的是用其中的图像填充我的 ListView 。我还需要知道如何用图像填充 ListView 。

我读了一些关于堆栈溢出的答案,但我不明白应该如何开始。

如果有人可以提供信息和一些代码来开始此操作,我将不胜感激。

编辑: 我能够从数据库中获取imageURL,我并没有陷入困境。我想知道如何用图像填充 ListView ?我在 StackOverflow 上看到了一些答案,但没有一个能够正确解决我的问题。

最佳答案

这可以通过从适配器中的 Firebase 或您想要设置图像的任何位置获取图像网址来完成。假设您有要使用的图像列表的示例代码:

FirebaseDatabase.getInstance().getReference().child("users").addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    for(DataSnapshot ds:dataSnapshot.getChildren()){
                        String image = ds.child("image").getValue(String.class);
                        // You can now set your Image with any method you want, Glide Picasso or any other library
//                        GlideApp.with(getContext())
//                                .load(image)
//                                .placeholder(new ColorDrawable(getResources().getColor(R.color.colorWhite)))// you can use any color here
//                                .fitCenter()
//                                .into(image_view);// An ImageView instance
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

这里所做的应该是获取要在 ListView 中显示的项目的位置。获取列表后,您可以将它们传递到适配器中。带注释的 GlideApp 调用应该发生在适配器的 getView 方法中

关于java - 如何在 android 中使用 Firebase 数据库中的图像填充 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53239941/

相关文章:

android - Kivy SQLalchemy 和 Android,没有名为 MySQLdb 的模块

java - 如何让 Sprite 从 Android 中的 gameView 边缘反弹?

java - 如何从 JTable 中删除一行?

java - 关于实现扩展接口(interface)的方法的建议

android - Eclipse 运行 Android 项目的问题

android - 我可以从 onResume() 中调用 startActivity() 吗?

swift - Firebase 连接状态在第一次运行时总是返回 false

java - Firebase Java Admin SDK 初学者(从 SQL)

java - JInternalFrame 正在延迟加载?

ios - 如何防止 Firebase Cloud Messaging 在 iOS/Unity 上请求推送通知权限