J'ai implémenté les images de chargement paresseux dans mon ListView
. J'utilise un AsyncTask
pour télécharger l'image à partir d'Internet et la lier à ImageView dans l'UIThread.Lazy-chargement d'images dans ListView sur Android
Cela fonctionne sauf que lorsque je fais défiler les ListView
varient rapidement, les images téléchargées sont parfois liées aux mauvais éléments de la liste. Je suppose que le problème provient de la réutilisation de convertView
dans le BaseAdapter
Des idées pour le résoudre?
Merci beaucoup.
EDIT: je poste la réponse comme suit:
public void setBitmap(int position, Bitmap image) {
View itemView = mListView.getChildAt(position - mListView.getFirstVisiblePosition());
if (itemView != null) {
ImageView itemImageView = (ImageView) itemView.findViewById(R.id.item_imageview);
itemImageView.setImageBitmap(image);
}
}
J'ai essayé l'exemple ici http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html Il fonctionne, mais encore eu la chance de lier la mauvaise image. L'astuce compare l'instance de la tâche semble la même que la réponse de Janusz. Mais il utilise une référence faible pour contenir l'instance de ImageView. Besoin de creuser plus profond. Des idées? – shiami