2081 Stimmen

Wie man Bilder in ListView in Android verzögert lädt

Ich verwende eine ListView um einige Bilder und die mit diesen Bildern verbundenen Beschriftungen anzuzeigen. Ich beziehe die Bilder aus dem Internet. Gibt es eine Möglichkeit, Bilder langsam zu laden, so dass die Benutzeroberfläche nicht blockiert wird, während der Text angezeigt wird, und die Bilder so angezeigt werden, wie sie heruntergeladen werden?

Die Gesamtzahl der Bilder ist nicht festgelegt.

13 Stimmen

Sie können verwenden GreenDroids AsyncImageView . Einfach anrufen setUrl .

8 Stimmen

Ich habe es benutzt. Es ist eine wunderbare Umsetzung. Schlechte Nachricht, dass AsyncImageView ist ein Teil eines großen GreenDroid Projekt, das Ihre Anwendung größer machen, auch in dem Fall, alles, was Sie brauchen, ist AsyncImageView. Auch scheint, GreenDroid Projekt ist nicht seit 2011 aktualisiert.

6 Stimmen

Sie können diese Bibliothek auch einmal ausprobieren: Android-http-image-manager die meiner Meinung nach die beste Lösung für asynchrones Laden von Bildern ist.

27voto

Ich denke, dieses Problem ist unter Android-Entwicklern sehr beliebt, und es gibt viele solcher Bibliotheken, die behaupten, dieses Problem zu lösen, aber nur wenige von ihnen scheinen das Ziel zu erreichen. AQuery ist eine solche Bibliothek, aber sie ist in allen Aspekten besser als die meisten anderen und es lohnt sich, sie auszuprobieren.

23voto

Girish Patel Punkte 1250

Sie müssen versuchen, diese Universal Loader ist am besten. Ich bin mit diesem nach getan viele RnD auf träge Laden.

Universal Image Loader

Eigenschaften

  • Laden von Bildern mit mehreren Threads (asynchron oder synchron)
  • Umfassende Anpassung der ImageLoader-Konfiguration (Thread-Executors, Downloader, Decoder, Speicher- und Festplatten-Cache, Bildanzeigeoptionen usw.)
  • Zahlreiche Anpassungsoptionen für jeden Aufruf von Anzeigebildern (Stub-Bilder, Caching-Schalter, Dekodierungsoptionen, Bitmap-Verarbeitung und -Anzeige usw.)
  • Zwischenspeicherung von Bildern im Speicher und/oder auf der Festplatte (Dateisystem des Geräts oder SD-Karte)
  • Abhören des Ladevorgangs (einschließlich Download-Fortschritt)

Unterstützung von Android 2.0+

enter image description here

22voto

PatrickNLT Punkte 3685

Werfen Sie einen Blick auf Shutterbug Applidium's leichtgewichtige SDWebImage (eine schöne Bibliothek für iOS) auf Android portieren. Sie unterstützt asynchrones Caching, speichert fehlgeschlagene URLs, kann gut mit Gleichzeitigkeit umgehen und enthält hilfreiche Unterklassen.

Pull Requests (und Fehlerberichte) sind ebenfalls willkommen!

18voto

yanchenko Punkte 55207

DroidParts hat ImageFetcher die keine Konfiguration erfordert, um loszulegen.

  • Verwendet eine Festplatte und einen Arbeitsspeicher Am wenigsten benutzt (LRU) Cache.
  • Dekodiert Bilder effizient.
  • Unterstützt das Ändern von Bitmaps im Hintergrund-Thread.
  • Hat eine einfache Überblendung.
  • Verfügt über einen Bildladefortschritts-Callback.

Klonen DroidPartsGram für ein Beispiel:

Enter image description here

17voto

Bijay Koirala Punkte 495

Nur ein kurzer Tipp für jemanden, der unschlüssig ist, welche Bibliothek er für Lazy-Loading-Bilder verwenden soll:

Es gibt vier grundlegende Möglichkeiten.

  1. DIY => Nicht die beste Lösung, aber für ein paar Bilder und wenn Sie sich den Ärger mit anderen Bibliotheken ersparen wollen

  2. Die Lazy Loading Bibliothek von Volley => Von den Jungs von Android. Es ist schön und alles, aber ist schlecht dokumentiert und daher ist ein Problem zu verwenden.

  3. Picasso: Eine einfache Lösung, die einfach funktioniert. Sie können sogar die genaue Bildgröße angeben, die Sie einbringen möchten. Es ist sehr einfach zu bedienen, aber möglicherweise nicht sehr "performant" für Anwendungen, die mit riesigen Mengen an Bildern umgehen müssen.

  4. UIL: Der beste Weg, um Bilder langsam zu laden. Sie können Bilder zwischenspeichern (Sie brauchen natürlich die Erlaubnis), initialisieren Sie den Lader einmal, dann haben Sie Ihre Arbeit getan. Die ausgereifteste asynchrone Bildladebibliothek, die ich bisher gesehen habe.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X