为书店开发应用程序。我希望能够在他们旁边查看带有图像的书籍列表。我可以将图片上传到Firebase存储,并且我的表格中有对该图片的引用。
我正在尝试使用RecyclerView,名称出现但图像没有出现。我一直在调试应用程序,文件名即将出现,但我不知道它是否在我的添加书籍活动中正确保存。
这是我选择一本书的地方:
private void chooseFile()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
&& data != null && data.getData() != null )
{
filePath = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Then my Glide Part where I want to display the image:
@Override
public void onBindViewHolder(SearchViewHolder holder, int position) {
holder.mTitle.setText(titleList.get(position));
holder.mAuthor.setText(authorList.get(position));
// ParseFile image = (ParseFile) bookImageList.get(position).get("image");
// String url = image.getUrl();
// Glide.with(context)
// .load(url)
// .placeholder(R.mipmap.ic_launcher_round)
// .into(holder.bookImage);
String image = bookImageList.get(position).toString();
Glide.with(context)
.load(image)
.fitCenter()
.into(holder.bookImage);
// Glide.with(context)
// .load("https://firebasestorage.googleapis.com/v0/b/bookapplication-725d9.appspot.com/o/images%2F6faf4b68-bf60-416b-b3d8-622cb8e8c63b?alt=media&token=3982bf64-a98c-421e-a133-26da82d03b58")
// .fitCenter()
// .into(holder.bookImage);
//Glide.with(context).load(bookImageList.get(position)).asBitmap().placeholder(R.mipmap.ic_launcher_round).into(holder.bookImage);
}
编辑我的完整适配器类:
public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.SearchViewHolder> {
Context context;
ArrayList<String> titleList;
ArrayList<String> authorList;
ArrayList<String> categoryList;
ArrayList<String> priceList;
ArrayList<String> quantityList;
ArrayList<String> bookImageList;
class SearchViewHolder extends RecyclerView.ViewHolder {
ImageView bookImage;
TextView mTitle, mAuthor;
public SearchViewHolder(View itemView) {
super(itemView);
bookImage = (ImageView) itemView.findViewById(R.id.bookImage);
mTitle = (TextView) itemView.findViewById(R.id.titleSearchItem);
mAuthor = (TextView) itemView.findViewById(R.id.authorSearchItem);
}
}
public SearchAdapter(Context context, ArrayList<String> titleList, ArrayList<String> authorList, ArrayList<String> categoryList, ArrayList<String> priceList, ArrayList<String> quantityList,ArrayList<String> bookImageList) {
this.context = context;
this.titleList = titleList;
this.authorList = authorList;
this.categoryList = categoryList;
this.priceList = priceList;
this.quantityList = quantityList;
this.bookImageList = bookImageList;
}
@Override
public SearchAdapter.SearchViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.search_list_items, parent, false);
return new SearchAdapter.SearchViewHolder(view);
}
@Override
public void onBindViewHolder(SearchViewHolder holder, int position) {
holder.mTitle.setText(titleList.get(position));
holder.mAuthor.setText(authorList.get(position));
// ParseFile image = (ParseFile) bookImageList.get(position).get("image");
// String url = image.getUrl();
// Glide.with(context)
// .load(url)
// .placeholder(R.mipmap.ic_launcher_round)
// .into(holder.bookImage);
String image = bookImageList.get(position).toString();
Glide.with(context)
.load(image)
.fitCenter()
.into(holder.bookImage);
// Glide.with(context)
// .load("https://firebasestorage.googleapis.com/v0/b/bookapplication-725d9.appspot.com/o/images%2F6faf4b68-bf60-416b-b3d8-622cb8e8c63b?alt=media&token=3982bf64-a98c-421e-a133-26da82d03b58")
// .fitCenter()
// .into(holder.bookImage);
//Glide.with(context).load(bookImageList.get(position)).asBitmap().placeholder(R.mipmap.ic_launcher_round).into(holder.bookImage);
}
@Override
public int getItemCount() {
return titleList.size();
}
}