android - 如何从android中的json响应在listview中显示图像
问题描述
嗨,在下面的代码中,我正在使用改造库显示来自 json 响应的数据。使用 recylerview 正在显示 title、id、albumid 以及 image.all 显示除了 image 。
但是如何从 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);
}
});
}
}
}
解决方案
使用毕加索:
将此行添加到您的应用程序级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);
推荐阅读
- android - Firemonkey TMemo OnChangeTracking Android 上的奇怪行为
- python - 根据容器中的元素获取副标题文本
- flutter - 多供应商颤振
- testng - 如果测试失败,带有 dataProvider 的 TestNG 会跳过测试
- swift - Firebase 规则:权限被拒绝
- angular - 为 Angular Material 步进器中的一步分配全宽
- javascript - JavaScript 循环嵌套数组
- git - 如何以特定格式转换 git log --name-only?
- python - 三变量相关性分析:将一个变量分类为区间,以实现其他两个变量之间更好的相关性
- c# - HttpClientFactory(System.Net.Http.Formatting)的目的是什么?