Glide: Was es ist, Bildbibliothek und Anwendung in Android

Autor: IT Sectr Veröffentlicht: 2026-05-05 Lesezeit: 8 Min.

Glide ist eine Bibliothek zum Laden von Bildern in Android, unterstützt von Google durch das Bumptech-Projekt. Die Bibliothek bietet effizientes Laden von Bildern, GIF-Animationen und Videoframes mit automatischer Speicherverwaltung. Laut dem Glide GitHub-Repository wird das Projekt von über 200.000 Anwendungen genutzt. Glide wird von Google als bevorzugte Bibliothek zum Laden von Grafiken in Android empfohlen.

Wichtige Punkte

  • Glide — Bildladungsbibliothek von Google mit GIF- und Videoframe-Unterstützung
  • Caching auf drei Ebenen: Speicher, Festplatte und aktive Ressourcen für maximale Geschwindigkeit
  • Lebenszyklus — Glide pausiert Anfragen automatisch, wenn eine Activity pausiert wird
  • GIF und animierte WebP werden ohne zusätzliche Plugins unterstützt
  • Thumbnail ermöglicht zuerst eine verkleinerte Version anzuzeigen, dann die Vollversion

Was ist Glide?

Glide ist eine Bibliothek zum schnellen und effizienten Laden von Bildern, animierten GIFs und Videoframes in Android-Anwendungen. Das Projekt wird von Bumptech unter der Schirmherrschaft von Google entwickelt und in offiziellen Google-Anwendungen weit verbreitet eingesetzt.

Die interne Architektur von Glide basiert auf einem komponentenbasierten Ansatz: Die Engine verwaltet die Ausführung von Anfragen, DecodeJob ist für die Dekodierung zuständig und ResourceDecoder wandelt Rohdaten in Bitmap oder Drawable um. Jede Stufe kann über Module und Registries angepasst werden, was Glide zu einer äußerst flexiblen Bibliothek für nicht standardisierte Bildformate macht.

Im Gegensatz zu vielen Mitbewerbern wurde Glide von Anfang an mit Blick auf die Besonderheiten von Android entwickelt: Activity- und Fragment-Lebenszyklus, Bildschirmdrehungen, Konfigurationsänderungen. Die Bibliothek pausiert und setzt das Laden automatisch in Abhängigkeit vom Zustand der Komponente fort.

Laut Android Developers ist Glide die empfohlene Bibliothek zum Laden von Bildern in der offiziellen Google-Dokumentation. Sie wird in Google Play, Google Maps und anderen Produkten des Unternehmens verwendet, was ihre Zuverlässigkeit und Leistung bestätigt.

Der Hauptunterschied zwischen Glide und Alternativen ist die automatische Skalierung von Bildern auf die ImageView-Größe. Während Picasso das Bild in voller Auflösung lädt und dann skaliert, dekodiert Glide die Datei direkt in der benötigten Größe. Dies reduziert den Spitzenspeicherverbrauch und beschleunigt die Anzeige in Listen mit unterschiedlichen Zellgrößen.

Hauptfunktionen von Glide

Glide bietet eine breite Palette von Funktionen für die Arbeit mit Bildern, die sowohl einfache als auch komplexe Ladeszenarien abdecken.

GIF- und animierte WebP-Unterstützung

GIF und animierte WebP werden von Glide genauso einfach geladen und angezeigt wie statische Bilder. Die Bibliothek erkennt das Format automatisch anhand des MIME-Typs und dekodiert die Animation, wobei Frames in einem Hintergrundthread angezeigt werden. Für die Wiedergabesteuerung stehen die Methoden asGif und asBitmap zur Verfügung.

Integration in den Lebenszyklus

Glide bindet sich automatisch an den Lebenszyklus von Activity, Fragment und View. Wenn eine Activity pausiert wird, wird das Laden ausgesetzt; wenn sie zerstört wird, wird es abgebrochen. Dies verhindert Speicherlecks und das Laden von Bildern für bereits geschlossene Bildschirme. Die Integration funktioniert über die LifecycleOwner-Unterstützung.

Laden von Videoframes

Glide kann Frames aus Videos per URL oder lokalem Pfad extrahieren. Die Methode asBitmap() in Kombination mit load() wird für Video-URIs verwendet. Glide wählt automatisch einen Keyframe oder einen Frame zu einem bestimmten Zeitstempel aus. Dies ist nützlich für die Anzeige von Video-Thumbnails.

Generierung und Konfiguration von GlideApp

GlideApp ist eine generierte Klasse, die eine erweiterte API basierend auf der AppGlideModule-Konfiguration bereitstellt. Sie ermöglicht die Verwendung von Methoden, die im standardmäßigen Glide.with nicht verfügbar sind: Laden mit benutzerdefinierten Standardoptionen, Integration mit Bibliotheken und voreingestellte Transformationen. Für die Generierung ist die Annotation @GlideModule in einer Klasse erforderlich, die AppGlideModule erweitert.

Wie funktioniert Glide?

Glide verwendet eine mehrschichtige Architektur mit Engine, Decodern, Transformationen und Cache. Jede Anfrage durchläuft eine Kette von Handlern, die das Laden für eine bestimmte ImageView optimieren.

Architektur und Pipeline

Wenn into(view) aufgerufen wird, überprüft Glide den Cache: aktive Ressourcen, Speichercache, Festplattencache und erst dann das Netzwerk. Das Bild wird automatisch unter Berücksichtigung der Bildschirmdichte und des scaleType auf die Ziel-ImageView-Größe skaliert. Dies reduziert die Speichernutzung — ein Hauptvorteil von Glide.

java
Glide.with(context)
    .load("https://example.com/image.jpg")
    .placeholder(R.drawable.loading)
    .error(R.drawable.error)
    .override(400, 300)
    .centerCrop()
    .into(imageView)

Installation und Konfiguration von Glide

Die Installation von Glide erfolgt über Gradle. Die Bibliothek erfordert eine Konfiguration über AppGlideModule für die API-Generierung. Die minimale Android-API-Version ist 21.

Hinzufügen von Abhängigkeiten

Fügen Sie in der build.gradle Glide mit dem kapt-Annotationsprozessor für die GlideApp-API-Generierung hinzu. Für Kotlin verwenden Sie kapt anstelle von annotationProcessor. Glide Version 4.16+ funktioniert stabil mit Android Gradle Plugin 8.x.

groovy
dependencies {
    implementation "com.github.bumptech.glide:glide:4.16.0"
    annotationProcessor "com.github.bumptech.glide:compiler:4.16.0"
}

// Verwenden Sie kapt für Kotlin
// kapt "com.github.bumptech.glide:compiler:4.16.0"

Erstellen von AppGlideModule

AppGlideModule ist eine erforderliche Komponente für die Konfiguration von Glide. Es ermöglicht das Festlegen der Cache-Größe, benutzerdefinierter HttpStack und das Registrieren eigener Decoder. Das Modul wird von Glide beim Start der Anwendung gescannt. Die Annotation @GlideModule registriert es automatisch.

java
@GlideModule
public class MyGlideModule extends AppGlideModule {
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        int diskCacheSize = 250 * 1024 * 1024;
        builder.setDiskCache(
            new DiskLruCacheFactory(cacheDir.getPath(), diskCacheSize)
        );
    }
}

Beispiele zur Verwendung von Glide

Die folgenden Beispiele zeigen typische Szenarien: Bildladung, Arbeit mit GIFs und Videoframe-Extraktion.

Laden eines Bildes mit Platzhalter

Das grundlegende Laden über Glide.with().load().into() — minimaler Code zum Anzeigen eines Bildes aus dem Netzwerk. Glide passt sich automatisch an die ImageView-Größe an. Der Platzhalter wird während des Ladevorgangs angezeigt und error bei einem Fehler.

java
Glide.with(fragment)
    .load("https://example.com/photo.jpg")
    .placeholder(R.drawable.placeholder)
    .error(R.drawable.error)
    .skipMemoryCache(true)
    .diskCacheStrategy(DiskCacheStrategy.NONE)
    .into(imageView)

Laden eines GIF-Bildes

Ein GIF wird genauso geladen wie ein statisches Bild — Glide erkennt das Format automatisch anhand des Inhaltstyps. Für das erzwungene Laden als statisches Bild verwenden Sie asBitmap(); für GIF asGif(). Glide dekodiert effizient nur die sichtbaren Frames.

java
Glide.with(context)
    .asGif()
    .load("https://example.com/animation.gif")
    .into(imageView)

// Das erste Frame eines GIF als statisches Bild laden
Glide.with(context)
    .asBitmap()
    .load("https://example.com/animation.gif")
    .into(imageView)

Laden eines Videoframes

Ein Videoframe wird von Glide aus einer lokalen oder entfernten Video-URI extrahiert. Standardmäßig lädt Glide den Keyframe. Um einen bestimmten Zeitstempel anzugeben, verwenden Sie frameMillis. Dies ist nützlich für die Anzeige von Vorschaubildern in einer Videogalerie.

java
String videoUrl = "https://example.com/video.mp4";

Glide.with(context)
    .asBitmap()
    .load(videoUrl)
    .override(200, 200)
    .into(imageView)

Optimierung von Glide für große Listen

Die Optimierung von Glide für RecyclerView ist eine wichtige Fähigkeit bei der Entwicklung von Anwendungen mit vielen Bildern. Die richtige Konfiguration verhindert Verzögerungen und OOM-Fehler.

Eine der Hauptfunktionen von Glide ist die RecyclerView-Integration über RecyclerViewPreloader. Diese Komponente analysiert die Scrollgeschwindigkeit und -richtung und lädt Bilder vor, die in wenigen Elementen auf dem Bildschirm erscheinen werden. Um den Preloader zu verwenden, müssen Sie das PreloadSizeProvider-Interface implementieren und es zusammen mit der Ziel-ImageView an den Konstruktor übergeben.

Die Verwendung der override()-Methode mit genauen ImageView-Abmessungen beschleunigt das Laden erheblich. Wenn Glide die genaue Zielgröße kennt, kann es das Bild direkt in der erforderlichen Auflösung dekodieren und den Skalierungsschritt überspringen. Dies reduziert die Dekodierungszeit und den Spitzenspeicherverbrauch um 30–40%.

Für Feeds mit heterogenem Inhalt verwenden Sie unterschiedliche RequestOptions für jeden Elementtyp. Zum Beispiel können Sie für große Bannerbilder override(1200, 600) und RGB_565-Qualität einstellen, während Sie für Avatare override(200, 200) und Rundung via transform verwenden. Dieser Ansatz nutzt Ressourcen optimal für jeden Inhaltstyp.

Fehlerbehandlung

Glide bietet flexible Optionen zur Fehlerbehandlung durch Fehlerbilder und benutzerdefinierte RequestListener. RequestListener ermöglicht es, auf erfolgreiches Laden oder Fehler zu reagieren — Fehler zu protokollieren oder Analysen zu senden. Sie können auch einen Fallback konfigurieren — ein Bild, das angezeigt wird, wenn load() null statt einer URL erhält.

Verwenden Sie RecyclerViewPreloader, um Bilder vorzuladen, bevor der Benutzer zu ihnen scrollt. Glide unterstützt die RecyclerView-Integration über einen Preloader, der die Scrollgeschwindigkeit analysiert und Bilder im Voraus lädt.

Die Thumbnail-Multiplikation ermöglicht es, zuerst eine verkleinerte Version des Bildes anzuzeigen und dann die Vollversion zu laden. Der Aufruf von thumbnail(0.25f) lädt eine Version mit 25% Größe, die sofort angezeigt wird, während das Bild in voller Größe später geladen wird. Dies erzeugt den Eindruck eines sofortigen Ladens.

Für Listenadapter verwenden Sie .override() mit genauen ImageView-Abmessungen, damit Glide das Bild nicht jedes Mal skalieren muss. Dies reduziert die CPU-Last und den Speicherverbrauch. Die Cache-Größe wird experimentell ermittelt, aber 250 MB für die Festplatte und 20% des verfügbaren Speichers sind ein guter Ausgangspunkt.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Glide und Picasso?

Glide unterstützt GIFs, Videoframes und animierte WebP. Es verwaltet den Speicher effizienter und wird von Google empfohlen. Picasso ist kleiner und einfacher zu verwenden. Für komplexe Projekte wählen Sie Glide.

Wie bindet sich Glide an den Lebenszyklus?

Glide akzeptiert einen LifecycleOwner (Fragment, Activity) oder View. Die Bibliothek verfolgt den Status automatisch über LifecycleObserver: pausiert das Laden bei Pause und bricht es bei Zerstörung ab, um Speicherlecks zu verhindern.

Kann ich in Glide nur den ersten Frame eines GIFs laden?

Ja, verwenden Sie asBitmap() vor load(). Glide lädt das GIF als statisches Bild und zeigt nur den ersten Frame an. Dies ist nützlich für Listen, in denen GIF-Animation aus Leistungsgründen unerwünscht ist.

Wie beeinflusst der Glide-Cache die Leistung?

Der Glide-Cache besteht aus drei Ebenen: aktive Ressourcen (aktuell in Verwendung), Arbeitsspeicher (LRU-Cache) und Festplatte (LruCache). Aus dem Cache geladene Bilder werden sofort angezeigt. Der Cache wird automatisch geleert, wenn der Speicher knapp wird.

Wie konfiguriere ich einen benutzerdefinierten HTTP-Client für Glide?

Ein benutzerdefinierter HTTP-Client wird über OkHttpUrlLoader in AppGlideModule registriert. Überschreiben Sie registerComponents und registrieren Sie Ihren OkHttpClient. Dies ermöglicht das Hinzufügen von Interceptoren, Zertifikaten und benutzerdefinierten Timeouts.

Zusammenfassung

  • Glide — Bildladungsbibliothek von Google mit GIF- und Videoframe-Unterstützung
  • Dreistufiger Cache bietet sofortigen Zugriff auf wiederholt geladene Bilder
  • Lebenszyklus pausiert und bricht Anfragen automatisch ab
  • Videoframes werden über asBitmap aus lokalen und entfernten Videos extrahiert
  • Thumbnail-Multiplikation beschleunigt die Bildanzeige in Listen
  • Google-Empfehlung macht Glide zum Standard für Android-Anwendungen
  • RecyclerViewPreloader lädt Bilder vor, bevor der Benutzer zu ihnen scrollt

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch