【发布时间】:2019-10-01 20:53:33
【问题描述】:
我正在尝试检索一个充满图像的 Firebase 存储:
这些图片应该可以填满我的 recyclerviews,这是我的代码,我正在使用 Glide 加载我的图片(我的 MyGlideAppModule 设置正确):
public class PicturesAdapter extends RecyclerView.Adapter<PictureViewHolder>
{
private List<Pictures> pictureList;
private StorageReference mStorageRef;
public PicturesAdapter(List<Pictures> pictureList)
{
this.pictureList = pictureList;
}
@NonNull
@Override
public PictureViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.picture_cv,
parent, false);
return new PictureViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull PictureViewHolder holder, int position)
{
Pictures pi = pictureList.get(position);
FirebaseStorage storage = FirebaseStorage.getInstance();
mStorageRef = storage.getReference();
GlideApp.with(holder.itemView.getContext())
.load(mStorageRef)
.into(holder.picture);
}
@Override
public int getItemCount() {
return pictureList.size();
}
}
我的视图持有者类:
public class PictureViewHolder extends RecyclerView.ViewHolder
{
public ImageView picture;
public PictureViewHolder(@NonNull View itemView)
{
super(itemView);
picture = (ImageView) itemView.findViewById(R.id.bobbyBrown);
}
public ImageView getPictureContents()
{
return picture;
}
}
在我将图像添加到 firebase 之前,我将每个图像都存储在本地,我会按如下方式调用适配器:
public class PicturesFragment extends Fragment {
private List<Pictures> pics = null;
private RecyclerView mRecyclerView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_pictures, container, false);
initializeView();
mRecyclerView = (RecyclerView) v.findViewById(R.id.picList);
mRecyclerView.setHasFixedSize(true);
PicturesAdapter p2 = new PicturesAdapter(pics);
LinearLayoutManager llm = new LinearLayoutManager(v.getContext());
llm.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(llm);
mRecyclerView.setAdapter(p2);
// Inflate the layout for this fragment
return v;
}
private void initializeView()
{
pics = new ArrayList<Pictures>();
pics.add(new Pictures(R.drawable.firepit1_a));
pics.add(new Pictures(R.drawable.firepit2_a));
pics.add(new Pictures(R.drawable.firepit3_a));
pics.add(new Pictures(R.drawable.firepit4_a));
pics.add(new Pictures(R.drawable.firepit5_a));
pics.add(new Pictures(R.drawable.firepit6_a));
pics.add(new Pictures(R.drawable.pic1));
pics.add(new Pictures(R.drawable.pic2));
pics.add(new Pictures(R.drawable.pic3));
pics.add(new Pictures(R.drawable.pic4));
pics.add(new Pictures(R.drawable.pic5));
pics.add(new Pictures(R.drawable.pic6));
pics.add(new Pictures(R.drawable.pic7));
pics.add(new Pictures(R.drawable.pic8));
}
}
如何检索图像并将它们填充到我的适配器中,非常感谢任何指向教程的链接,我还没有找到任何链接。
谢谢
【问题讨论】:
标签: java android firebase firebase-storage