【问题标题】:How to display image in a listview from json response in android如何从android中的json响应在listview中显示图像
【发布时间】:2019-04-17 08:30:54
【问题描述】:

您好,在下面的代码中,我正在使用改造库显示来自 json 响应的数据。 使用 recylerview 显示标题、id、albumid 以及 image.all 显示除了图像。

但是如何从 url 显示图像。谁能帮帮我吗 这是我的适配器类。

.java

public class RecyclerViewAdapterForAlbum extends RecyclerView.Adapter<RecyclerViewAdapterForAlbum.ViewHolder> {

    private List<UserAlbum> item;
    Context context ;

    public RecyclerViewAdapterForAlbum(Context context, List<UserAlbum> item ) {
        Log.d("123", "RecyclerViewAdapter");
        this.item = item;
        this.context = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Log.d("123", "onCreateViewHolder");
        View view = LayoutInflater.from(context).inflate(R.layout.activity_second, null);

        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Log.d("123", "onBindViewHolder");
        holder.user_id.setText(String.valueOf(item.get(position).getId()));
        holder.album_id.setText(String.valueOf(item.get(position).getAlbumId()));
        holder.title.setText(item.get(position).getTitle());
        //Bitmap getBitMapFromUrl=null;
       holder.imageForText.setImageResource(item.get(position).getThumbnailUrl());
    }

    @Override
    public int getItemCount() {
        Log.d("123", "getItemCount");
        return item.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public TextView album_id, user_id,title;
        public ImageView imageForText;

        public ViewHolder(View itemView) {
            super(itemView);
            Log.d("123", "ViewHolder");


            user_id = (TextView) itemView.findViewById(R.id.user_id);
            album_id=(TextView)itemView.findViewById(R.id.album_id);
            title=(TextView)itemView.findViewById(R.id.title);
            imageForText=(ImageView)itemView.findViewById(R.id.img_id);


            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
//                    int pos = getAdapterPosition();
//                    int userID=item.get(pos).getId();
//                    Intent myIntent = new Intent(v.getContext(), SecondActivity.class);
//                    myIntent.putExtra("userId",userID);
//                    context.startActivity(myIntent);

                }
            });
        }


    }
}

【问题讨论】:

标签: android retrofit imageurl


【解决方案1】:

使用毕加索:

将此行添加到您的应用级build.gradle 文件中。

implementation 'com.squareup.picasso:picasso:2.71828'

您可以通过以下方式简单地将图像设置为ImageView

Picasso.get().load(item.get(position).getThumbnailUrl()).into(holder.imageForText);

使用滑翔:

将这些行添加到您的应用级 build.gradle 文件中。

implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

您可以通过以下方式简单地将图像设置为ImageView

GlideApp.with(this).load(item.get(position).getThumbnailUrl()).into(holder.imageForText);

【讨论】:

    【解决方案2】:

    你可以使用图书馆,比如毕加索

    implementation 'com.squareup.picasso:picasso:2.71828'
    

    使用它:

    Picasso.get().load("IMG URL").into(YOURIMAGEVIEW);
    

    【讨论】:

      【解决方案3】:

      您必须使用诸如 picasso 或通用图像加载器等类型的 libaray 来在您的 ImageView 上加载图像,就像我正在使用 picaso 一样

      实现'com.squareup.picasso:picasso:2.71828'

      Picasso.get().load(item.get(position).getThumbnailUrl()).into(imageForText);

      【讨论】:

        猜你喜欢
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        • 2016-12-02
        • 1970-01-01
        • 1970-01-01
        • 2010-10-02
        • 2021-07-20
        相关资源
        最近更新 更多