有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java显示来自安卓数据库的图像

我试图在回收器视图上显示SQLite数据库中的图像。这些图片是我从二手车网站上抓取的链接。到目前为止,我能够显示名称、价格、年份和地点。我看了毕加索如何做到这一点,但似乎在这个平台上找不到如何将其集成到回收视图的例子。有人知道如何展示它吗

class SearchViewHolder extends RecyclerView.ViewHolder {
    public TextView name, price, year, location;
    public ImageView image;



    public SearchViewHolder(@NonNull View itemView) {
        super(itemView);
        name = (TextView) itemView.findViewById(R.id.name);
        price = (TextView) itemView.findViewById(R.id.price);
        year = (TextView) itemView.findViewById(R.id.year);
        location = (TextView) itemView.findViewById(R.id.location);
        image = (ImageView) itemView.findViewById(R.id.car_img);
    }
}

public class SearchAdapter extends RecyclerView.Adapter<SearchViewHolder> {

    private Context context;
    private List<Products> products;

    public SearchAdapter(Context context, List<Products> products) {
        this.context = context;
        this.products = products;
    }

    @NonNull
    @Override
    public SearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View itemView = inflater.inflate(R.layout.layout_item,parent, false);
        return new SearchViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull SearchViewHolder holder, int position) {
        holder.name.setText(products.get(position).getName());
        holder.price.setText(products.get(position).getPrice());
        holder.year.setText(products.get(position).getYear());
        holder.location.setText(products.get(position).getLocation());

    }

    @Override
    public int getItemCount() {
        return products.size();
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您可以使用Glide库

    def glide_version = "4.3.1"
    
    implementation "com.github.bumptech.glide:glide:$glide_version"
    annotationProcessor "com.github.bumptech.glide:compiler:$glide_version"
    

    然后实施它

    Glide.with(context)
           .load(imageUrl)
           .into(imageview);
    

    或者你可以使用毕加索图书馆

    def picasso_version = "2.5.2"
    
    implementation "com.squareup.picasso:picasso:$picasso_version"
    

    然后实施它

    Picasso.with(getContext()).load(imageUrl).into(imageView);
    

    对于您的情况: 将其放在适配器类中,如下所示:

        @Override
        public void onBindViewHolder(@NonNull SearchViewHolder holder, int position) {
            holder.name.setText(products.get(position).getName());
            holder.price.setText(products.get(position).getPrice());
            holder.year.setText(products.get(position).getYear());
            holder.location.setText(products.get(position).getLocation());
    
            Glide.with(context)
              .load(products.get(position).getImage())
              .into(holder.image);
        }