Ładowanie obrazów w GridView za pomocą Universal Image Loader

UżywamUniversal Image Loader 1.8.6 biblioteka do ładowania obrazów dinamicznych pobranych z sieci.

TheImageLoaderConfiguration konfiguracja jest następująca:

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
    .memoryCacheExtraOptions(480, 800) // default = device screen dimensions
    .threadPoolSize(3) // default
    .threadPriority(Thread.NORM_PRIORITY - 1) // default
    .denyCacheImageMultipleSizesInMemory()
    .memoryCacheSize(2 * 1024 * 1024)
    .memoryCacheSizePercentage(13) // default
    .discCacheSize(50 * 1024 * 1024)
    .discCacheFileCount(100)
    .imageDownloader(new BaseImageDownloader(getApplicationContext())) // default
    .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
    .writeDebugLogs()
    .build();

iDisplayImageOptions konfiguracja to:

DisplayImageOptions options = new DisplayImageOptions.Builder()
    .showStubImage(R.drawable.no_foto)
    .showImageForEmptyUri(R.drawable.no_foto)
    .showImageOnFail(R.drawable.no_foto)
    .build();

Metoda getView wewnątrz mojego ArrayAdapter zawiera kod:

iv.setImageResource(R.drawable.no_foto); 
imageLoader.displayImage(basePath+immagine, iv);

Pierwsza linia powyższego kodu jest używana tylko w celu uniknięcia sytuacji, w której recykling widoku w gridView pozwala ustawić obraz w niewłaściwej pozycji (dopóki obraz nie zostanie pobrany).

Rzeczywisty problem to:

Jeśli otworzę moją aktywność (zawierającąGridView) pokazane przedmioty dzięki bibliotece UIL mogą pobrać obraz. (Tymczasemno_foto.png obraz jest wyświetlany w każdym widoku siatki). Gdy wszystkie widoki załadują własne obrazy, jeśli spróbuję przewinąć w dół, a potem wrócę (przewijanie w górę), muszę poczekać, aż obrazy zostaną ponownie załadowane, ponieważ wszystkie widoki są teraz zajmowane przezno_foto.png obraz.

Jak mogę uniknąć ponownego ładowania tych obrazów? Czy za pomocą Universal Image Loader mogę buforować obrazy wcześniej załadowane?

UWAGA: Ponieważ moja siatka może zawierać wiele obrazów, chciałbym użyć implementacjidisk cache (nie pamięć podręczna pamięci). znalazłem to.discCacheFileCount() może być używany do ustawiania maksymalnej liczby buforowanych plików, więc dlaczego wydaje się, że moje pliki nie są buforowane?

questionAnswers(2)

yourAnswerToTheQuestion