android - 如何使用 FirebaseUI Firestore RecyclerView 显示图像
问题描述
我想使用 FirebaseUI 和 Firestore 在我的回收站视图中显示图像。到目前为止,我只能显示文本。我一直无法在网上找到可以理解的解决方案。
正如您在下面的代码中看到的,我已经能够将文本绑定到eventName
文本eventCity
视图元素。有没有办法,也许使用 picasso,使用从 firebase 检索图像 URIgetDisplay_Image_URI()
并将其绑定到eventDisplay
imageview?为了更容易理解,我添加了我正在使用的 POJO 类。
探索PageAdapter.java
public class ExplorePageAdapter extends FirestoreRecyclerAdapter<POJO_explore_page_item, ExplorePageAdapter.EventHolder> {
/**
* Create a new RecyclerView adapter that listens to a Firestore Query. See {@link
* FirestoreRecyclerOptions} for configuration options.
*
* @param options
*/
public ExplorePageAdapter(@NonNull FirestoreRecyclerOptions<POJO_explore_page_item> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull EventHolder eventHolder, int i, @NonNull POJO_explore_page_item pojo_explore_page_item) {
eventHolder.eventName.setText(pojo_explore_page_item.getName());
eventHolder.eventCity.setText(pojo_explore_page_item.getCity());
//eventHolder.eventName.setText(pojo_explore_page_item.getName());
}
@NonNull
@Override
public EventHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.
layout.explore_page_item, parent,false
);
return new EventHolder(v);
}
class EventHolder extends RecyclerView.ViewHolder{
TextView eventName;
TextView eventCity;
ImageView eventDisplay;
//Button bookmark;
public EventHolder(@NonNull View itemView) {
super(itemView);
eventName = itemView.findViewById(R.
id.exp_event_name);
eventCity = itemView.findViewById(R.
id.exp_event_city);
eventDisplay = itemView.findViewById(R.
id.exp_display_image);
//bookmark = itemView.findViewById(R.
// id.bookmark);
}
}
}
POJO_explore_page_item.java
private String Display_Image_URI;
private String Event_ID;
private String capacity;
private String city;
private String country;
private String deadline;
private String end;
private String start;
private String price;
private String venue;
private String id;
private String name;
public POJO_explore_page_item() {
//empty constructor needed
}
public POJO_explore_page_item(String Display_Image_URI, String Event_ID, String capacity, String city, String country, String deadline, String end, String start, String price, String venue, String id, String name) {
this.Display_Image_URI = Display_Image_URI;
this.Event_ID = Event_ID;
this.capacity = capacity;
this.city = city;
this.country = country;
this.deadline = deadline;
this.end = end;
this.start = start;
this.price = price;
this.venue = venue;
this.id = id;
this.name = name;
}
public String getDisplay_Image_URI() {
return Display_Image_URI;
}
public String getEvent_ID() {
return Event_ID;
}
public String getCapacity() {
return capacity;
}
public String getCity() {
return city;
}
public String getCountry() {
return country;
}
public String getDeadline() {
return deadline;
}
public String getEnd() {
return end;
}
public String getStart() {
return start;
}
public String getPrice() {
return price;
}
public String getVenue() {
return venue;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
解决方案
在您的项目中实现毕加索:
implementation 'com.squareup.picasso:picasso:2.71828'
然后在您onBindViewHolder
确保您提供的图像 url 不是 firebase 图像存储位置:
Picasso.get().load(pojo_explore_page_item.getDisplay_Image_URI()).into(holder.eventDisplay);
推荐阅读
- javascript - Parcel.js 不能要求 googleapis
- html - FFMPEG 命令将视频流复用到 HLS fMP4
- javascript - 破译JS Array.prototype.reverse()
- node.js - 如何在 Safari 中使用阻止跨站点跟踪选项后的 cookie
- python - 如何从字典列表中删除上面的数组列表?
- r - R ggplot2 包中的选项 a.(显示通过 aes() 的 x 轴上的值),b.(右上角的回归 eqn)?
- python - win10打包exe程序的pyinstaller问题
- c++ - 定义一个多维数组,其维数是一个动态参数
- ios - SwiftUI - 使用 var 或 let 从两个文本字段添加值
- ios - 将 UIImage 设置为 UIImageView 时,iOS App 无异常崩溃