Я загружаю изображение с сервера в элемент списка с использованием пикассо:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View participantView;
if(convertView == null) {
participantView = inflater.inflate(R.layout.participant_item, parent, false);
} else {
participantView = convertView;
}
TextView textView = (TextView) participantView.findViewById(R.id.participantName);
textView.setText(getItem(position).getName());
ImageView imageView = (ImageView) participantView.findViewById(R.id.participantImage);
String profilePic = getItem(position).getProfilePic();
if(!profilePic.equals("None")) {
Log.d("tom.debug", "creating picture for user: " + getItem(position).getName());
Picasso.with(this.context)
.load(urlToProfilePics + profilePic)
.placeholder(R.drawable.sample_0)
.resize(52, 52)
.into(imageView);
} else {
//load the place holder into the image view
Picasso.with(this.context).load(R.drawable.sample_0);
}
if(!getItem(position).isHere()) {
imageView.setColorFilter(Color.DKGRAY, PorterDuff.Mode.MULTIPLY);
}
return participantView;
}
Отладочный журнал под оператором if запускается только для пользователей, у которых действительно есть изображение профиля. (Пользователи, у которых их нет, получат значение None
).
Однако некоторые других элементов списка просмотра (которые не имеют профиля профиля) также загружают изображение.
Еще один полезный факт (я думаю): элементы, которые получают ошибку, изменяются при прокрутке вверх и вниз по списку.
Я не уверен, что мне здесь не хватает.