如何在列表视图中显示来自 android 中的 json 响应的图像
How to display image in a listview from json response in android
您好,下面的代码正在显示来自 json 使用改造库的响应的数据。
使用 recylerview 正在显示标题、ID、专辑以及 image.all 正在显示,但图像除外。
但是如何显示来自 url 的图像。谁能帮帮我吗
这是我的适配器 class.
.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);
}
});
}
}
}
你可以使用图书馆,比如 Picasso
implementation 'com.squareup.picasso:picasso:2.71828'
使用它:
Picasso.get().load("IMG URL").into(YOURIMAGEVIEW);
你必须使用类似 picasso 或通用图像加载器等的 libaray 来在你的 ImageView 上加载图像,就像我正在使用 picaso
实施'com.squareup.picasso:picasso:2.71828'
Picasso.get().load(item.get(位置).getThumbnailUrl()).into(imageForText);
使用毕加索:
将此行添加到您的应用级 build.gradle
文件。
implementation 'com.squareup.picasso:picasso:2.71828'
您只需将图像设置为 ImageView
,方法是:
Picasso.get().load(item.get(position).getThumbnailUrl()).into(holder.imageForText);
使用 Glide:
将这些行添加到您的应用级 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);
您好,下面的代码正在显示来自 json 使用改造库的响应的数据。 使用 recylerview 正在显示标题、ID、专辑以及 image.all 正在显示,但图像除外。
但是如何显示来自 url 的图像。谁能帮帮我吗 这是我的适配器 class.
.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);
}
});
}
}
}
你可以使用图书馆,比如 Picasso
implementation 'com.squareup.picasso:picasso:2.71828'
使用它:
Picasso.get().load("IMG URL").into(YOURIMAGEVIEW);
你必须使用类似 picasso 或通用图像加载器等的 libaray 来在你的 ImageView 上加载图像,就像我正在使用 picaso
实施'com.squareup.picasso:picasso:2.71828'
Picasso.get().load(item.get(位置).getThumbnailUrl()).into(imageForText);
使用毕加索:
将此行添加到您的应用级 build.gradle
文件。
implementation 'com.squareup.picasso:picasso:2.71828'
您只需将图像设置为 ImageView
,方法是:
Picasso.get().load(item.get(position).getThumbnailUrl()).into(holder.imageForText);
使用 Glide:
将这些行添加到您的应用级 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);