使用 Picasso 在 Android Studio 的 ListView 中显示来自字符串数组 URL 的图像
Display Images From Array of String URL's in ListView in Android Studio using Picasso
我正在尝试使用 picasso 加载包含文本和图像的列表视图。我正在尝试使用字符串数组中各自的 URL 来加载图像。文本部分正在加载到列表视图中。但是,图像没有加载,所以我得到的只是一个 listView,在各自的行中有文本,但没有图像。我怎样才能使用 Picasso 做到这一点?提前致谢!
class MyAdapter extends ArrayAdapter <String> {
Context context;
String[] descriptionArray;
String[] url;
MyAdapter (Context c, String[] importerArray,String[] url) {
super(c, R.layout.content_orders,R.id.textView2, importerArray);
this.context =c;
this.descriptionArray = importerArray;
this.url = url;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.content_orders, list, false);
ImageView myImage = (ImageView) row.findViewById(R.id.imageView2);
TextView description = (TextView) row.findViewById(R.id.textView2);
description.setText(descriptionArray[position]);
Picasso.with(OrdersActivity.this).load(url[position]).into(myImage);
return super.getView(position, convertView, parent);
}
}
我修改了你的适配器。
........
@Override
public View getView(int _position, View _convertView, ViewGroup _parent) {
View view = _convertView;
ViewHolder viewHolder;
if (view == null) {
view= View.inflate(context, R.layout.content_orders, null);
viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) _convertView.getTag();
}
viewHolder.description.setText(descriptionArray[position]);
Picasso.with(OrdersActivity.this).load(url[position].replace(" ","%20")).into(viewHolder.myImage); //here i'm editting your url, because if your url contains and blank space you can't download image from url
//for that i'm encoding your URL by replacing blank space with "%20"
return view;
}
.....
.....
static class ViewHolder{
ImageView myImage;
TextView description;
public ViewHolder(View v){
myImage = (ImageView) v.findViewById(R.id.imageView2);
description = (TextView) v.findViewById(R.id.textView2);
}
}
希望对您有所帮助。
我正在尝试使用 picasso 加载包含文本和图像的列表视图。我正在尝试使用字符串数组中各自的 URL 来加载图像。文本部分正在加载到列表视图中。但是,图像没有加载,所以我得到的只是一个 listView,在各自的行中有文本,但没有图像。我怎样才能使用 Picasso 做到这一点?提前致谢!
class MyAdapter extends ArrayAdapter <String> {
Context context;
String[] descriptionArray;
String[] url;
MyAdapter (Context c, String[] importerArray,String[] url) {
super(c, R.layout.content_orders,R.id.textView2, importerArray);
this.context =c;
this.descriptionArray = importerArray;
this.url = url;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.content_orders, list, false);
ImageView myImage = (ImageView) row.findViewById(R.id.imageView2);
TextView description = (TextView) row.findViewById(R.id.textView2);
description.setText(descriptionArray[position]);
Picasso.with(OrdersActivity.this).load(url[position]).into(myImage);
return super.getView(position, convertView, parent);
}
}
我修改了你的适配器。
........
@Override
public View getView(int _position, View _convertView, ViewGroup _parent) {
View view = _convertView;
ViewHolder viewHolder;
if (view == null) {
view= View.inflate(context, R.layout.content_orders, null);
viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) _convertView.getTag();
}
viewHolder.description.setText(descriptionArray[position]);
Picasso.with(OrdersActivity.this).load(url[position].replace(" ","%20")).into(viewHolder.myImage); //here i'm editting your url, because if your url contains and blank space you can't download image from url
//for that i'm encoding your URL by replacing blank space with "%20"
return view;
}
.....
.....
static class ViewHolder{
ImageView myImage;
TextView description;
public ViewHolder(View v){
myImage = (ImageView) v.findViewById(R.id.imageView2);
description = (TextView) v.findViewById(R.id.textView2);
}
}
希望对您有所帮助。