Ho implementato le immagini con caricamento lento nel mio ListView
. Io uso un AsyncTask
per scaricare l'immagine da Internet e collegarla a ImageView in UIThread.Lazy-loading images in ListView su Android
Funziona eccetto che quando si scorre il ListView
variano velocemente, le immagini scaricate a volte sono vincolate agli elementi errati nell'elenco.
Immagino che il problema derivi dal riutilizzo di convertView
nello BaseAdapter
. Qualche idea per risolverlo?
Molte grazie.
EDIT: inserisco la risposta come segue:
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);
}
}
ho provato l'esempio qui http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html Funziona, ma ancora avuto la possibilità di legare l'immagine sbagliata. Il trucco confrontare l'istanza del compito sembra la stessa della risposta di Janusz. Ma usa un riferimento debole per contenere l'istanza di ImageView. Hai bisogno di scavare più a fondo. Qualche idea? – shiami