我已将指向Firebase存储中图像的链接存储至Firebase数据库。我的数据库的JSON结构是这样的:
|
--- users
|
|
---- uid1
| |
| -- uid1
| |
| -- name
| |
| -- imageURL
| |
|
|
-- uid2
我想做的是用此图像填充我的列表视图。我还需要知道如何用图像填充listview。
我在堆栈溢出时阅读了一些答案,但我不明白该如何开始。
如果有人可以提供信息和一些与此相关的代码,我将不胜感激。
编辑:
我可以从数据库中获取imageURL
,而我对此并不感到困惑。我想知道如何用图像填充listview?我在StackOverflow上看到了一些答案,但没有一个能够正确解决我的问题。
答案 0 :(得分:1)
这可以通过从您的适配器中的Firebase或您要设置图像的任何地方获取图像URL来完成。假设您有要使用的图像列表的示例代码:
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
方法中发生
答案 1 :(得分:0)
如果您可以使用改造从Firebase中获取图像,那么将图像填充到RecyclerView中将非常容易。如果您不知道如何进行改造,则可以按照本教程进行。 https://www.raywenderlich.com/4539-android-networking