我有很長的ListView
,其中每行有ImageView
。它顯示正確的位圖,如果我慢慢滾動列表(每行有不同的圖標顯示)。快速滾動時圖像未加載到ListView中
當我快速滾動ListView
時出現問題。發生這種情況的原因是很多圖像並未加載到它們的ImageView
中,使其透明。即使是之前顯示的緩慢滾動列表。
這裏是getView()方法中的代碼應該顯示的圖標:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
String name = ... //custom code to get the icon name to show
Bitmap bitmap = BitmapFactory.decodeFile(getIconsDir() + name + getIconsExt(), options);
holder.imgIcon.setImageBitmap(bitmap);
我回收convertView在適配器的getView()
方法。
我知道該位置存在的位圖。 imgIcon
是該行的ViewHolder
所引用的ImageView
。
我也試過使用圖像加載器(如畢加索),但我得到了同樣的結果。
以前有沒有人經歷過這個?
好的,但畢加索應該使用內存緩存和異步加載,不是嗎? –
@DanieleVitali是的,它可能會。但這並不意味着您的列表視圖將始終立即加載所有內容,並且在滾動速度非常快時看起來像素完美。 –
所以我得出結論,即使有內存緩存和異步加載,我仍然可以在ListView中顯示圖像時出現問題嗎? –