Android-Universal-Image-Loader lädt geladene Bilder nicht in der Gridview

8

Ich verwende die Android-Universal-Image-Loader -Bibliothek, um Remote-Bilder in ImageView zu laden meine GridView-Zellen.

Hier die imageLoader-Konfigurationen:

%Vor%

und Anzeigeoptionen:

%Vor%

Die Probleme: Sobald die Aktivität mit der Gridview startet, werden alle Aufgaben ordnungsgemäß ausgeführt und Bilder erscheinen in den Zellen. dann scrolle ich das Raster nach unten (ich habe ungefähr 20 Elemente im Raster) und andere Bilder werden richtig geladen. Aber sobald ich oben scrolle, beginnen die Bilder, die bereits geladen sind, wieder zu laden.

Nach ein paar Scrolls rauf und runter Raster speichert alle Bilder und sie verschwinden nicht mehr.

Hat jemand ähnliche Probleme oder weißt du, was ich falsch gemacht habe? Danke für die Hilfe.

HINZUGEFÜGT : Hier ist die getView-Methode in meinem Adapter:

%Vor%

PS. Lassen Sie mich wissen, wenn Sie anderen Code (Grid-Adapter vielleicht) sehen wollen, um mir bei diesem Problem zu helfen.

John

    
John F 17.07.2013, 08:22
quelle

6 Antworten

16

Ich habe das gleiche Problem bei der Universal-Image-Loader-Demo festgestellt und hoffe, dass die Bibliotheksentwickler das Problem im nächsten Update lösen werden.

UPDATE : Das Problem wurde mithilfe von nostra13 behoben. Sie müssen die Bibliothek auf 1.9 Version und verwenden Sie diese Art der Anzeige von Bildern in imageView :

%Vor%

Es hat mein Problem gelöst. Einige Details, warum Sie dies tun sollten, finden Sie hier und < a href="https://github.com/nostra13/Android-Universal-Image-Loader/issues/675"> hier

    
John F 17.09.2013, 09:33
quelle
1

Sie müssen den Adapter verwenden und dann ViewHolder implementieren, um den Bildlauf reibungslos und effektiv zu gestalten. Stellen Sie den Bildern wr.t Tags zur Verfügung, die in getView() bereitgestellt werden, und dann wird es kein Problem geben.

    
Anchit Mittal 17.07.2013 08:28
quelle
1

Verwenden Sie in der getView () - Methode des Adapters nicht das Set-Tag. Versuchen Sie immer, in Ihrer Adapter-Methode "getview ()" View-IDs zu finden.

%Vor%     
Mohit tanwar 13.10.2015 10:19
quelle
1

Sie sollten die ImageLoader- und DisplayImageOptions-Instanz nur einmal deklarieren. Wahrscheinlich im Konstruktor.

%Vor%     
King of Masses 20.01.2016 13:03
quelle
0

Das gleiche Problem hier, mit einer StaggeredGridView. Auch mit Memory-Cache und der ImageAware-Methode ist es nicht gelöst.

Das Einzige, was mir geholfen hat, war, den Cache von 4 auf 10 MB zu erweitern. List Bilder sind klein, aber ich habe ein sehr großes Bild als Header der Ansicht.

Ich habe bemerkt, dass imageViews auch mit einem langen Klick aktualisiert werden, ist das auch für GridView gültig?

Wie auch immer, das Speicher-Cache-Limit wurde ebenfalls erweitert.

    
Michele Bontorno 30.01.2014 12:03
quelle
-1

.i war auch mit demselben Problem konfrontiert und löste das Problem, indem er

Utils.imageLoaderFeatured.displayImage (listing.get ("Foto"), halter.image, Utils.imageLoaderOptionsFeatured); .......

Zeile innerhalb if (view == null) ....... ieWhen Ihre Ansicht konvertieren == null nur dann laden Bilder und display.them ..dies wird Ihr Problem lösen .....

    
user2834847 19.10.2013 08:17
quelle