Glide: co to je, knihovna obrázků a použití v Androidu

Autor: IT Sectr Publikováno: 2026-05-05 Doba čtení: 8 min

Glide — je knihovna pro načítání obrázků v Androidu, podporovaná Googlem prostřednictvím projektu Bumptech. Knihovna zajišťuje efektivní načítání obrázků, GIF animací a video snímků s automatickou správou paměti. Podle údajů GitHub repozitáře Glide, projekt používá více než 200 000 aplikací. Glide je Googlem doporučován jako preferovaná knihovna pro načítání grafiky v Androidu.

Hlavní body

  • Glide — knihovna pro načítání obrázků od Googlu s podporou GIF a video snímků
  • Ukládání do mezipaměti tří úrovní: paměť, disk a aktivní zdroje pro maximální rychlost
  • Životní cyklus — Glide automaticky pozastavuje požadavky při pauze Activity
  • GIF a animované WebP jsou podporovány ihned bez dalších pluginů
  • Thumbnail umožňuje nejprve zobrazit zmenšenou verzi, poté plnou

Co je Glide?

Glide — je knihovna pro rychlé a efektivní načítání obrázků, animovaných GIF a video snímků v Android aplikacích. Projekt je vyvíjen společností Bumptech pod záštitou Googlu a je široce používán v oficiálních aplikacích Googlu.

Vnitřní architektura Glide je postavena na komponentovém přístupu: Engine řídí provádění požadavků, DecodeJob je zodpovědný za dekódování a ResourceDecoder převádí surová data na Bitmap nebo Drawable. Každou fázi lze přizpůsobit pomocí modulů a registrů, což činí Glide mimořádně flexibilní knihovnou pro nestandardní formáty obrázků.

Na rozdíl od mnoha konkurentů byl Glide od samého počátku navržen s ohledem na specifika Androidu: životní cyklus Activity a Fragmentu, otáčení obrazovky, změny konfigurace. Knihovna automaticky pozastavuje a obnovuje načítání v závislosti na stavu komponenty.

Podle Android Developers je Glide doporučovanou knihovnou pro načítání obrázků v oficiální dokumentaci Googlu. Používá se v aplikacích Google Play, Google Maps a dalších produktech společnosti, což potvrzuje její spolehlivost a výkon.

Klíčový rozdíl Glide oproti analogům — automatické škálování obrázků na velikost ImageView. Pokud Picasso načítá obrázek v plném rozlišení a poté jej škáluje, Glide dekóduje soubor rovnou v požadované velikosti. To snižuje špičkovou spotřebu paměti a urychluje zobrazování v seznamech s různými velikostmi buněk.

Hlavní možnosti Glide

Glide poskytuje širokou sadu funkcí pro práci s obrázky, pokrývající jak jednoduché, tak složité scénáře načítání obsahu.

Podpora GIF a animovaných WebP

GIF a animované WebP Glide načítá a zobrazuje stejně snadno jako statické obrázky. Knihovna automaticky rozpozná formát podle MIME typu a dekóduje animaci, zobrazující snímky na pozadí. Pro řízení přehrávání jsou k dispozici metody asGif a asBitmap.

Integrace s životním cyklem

Glide se automaticky váže na životní cyklus Activity, Fragmentu a View. Při pauze Activity se načítání pozastaví, při zničení — zruší. To zabraňuje únikům paměti a načítání obrázků pro již zavřené obrazovky. Integrace funguje prostřednictvím podpory LifecycleOwner.

Načítání video snímků

Glide může extrahovat snímky z videa podle URL nebo místní cesty. K tomu se používá metoda asBitmap() v kombinaci s load() pro URI videa. Glide automaticky vybere klíčový snímek nebo snímek podle zadaného časového razítka. To je užitečné pro zobrazení náhledu videa.

Generování a nastavení GlideApp

GlideApp — je generovaná třída, která poskytuje rozšířené API na základě konfigurace AppGlideModule. S jeho pomocí lze používat metody nedostupné ve standardním Glide.with: načítání s vlastními výchozími možnostmi, integrace s knihovnami a přednastavené transformace. Pro generování je vyžadována anotace @GlideModule ve třídě dědící z AppGlideModule.

Jak Glide funguje?

Glide používá vícevrstvou architekturu s motorem, dekodéry, transformacemi a mezipamětí. Každý požadavek prochází řetězcem handlerů optimalizujících načítání pro konkrétní ImageView.

Architektura a pipeline

Při volání into(view) Glide zkontroluje mezipaměť: aktivní zdroje, mezipaměť v RAM, disk a teprve poté síť. Obrázek je automaticky škálován na velikost cílového ImageView s ohledem na hustotu obrazovky a scaleType. To snižuje využití paměti — klíčová výhoda 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)

Instalace a nastavení Glide

Instalace Glide se provádí přes Gradle. Knihovna vyžaduje konfiguraci přes AppGlideModule pro generování API. Minimální verze Android API — 21.

Přidání závislostí

Do build.gradle přidejte Glide s kapt zpracovatelem anotací pro generování GlideApp API. Pro Kotlin použijte kapt místo annotationProcessor. Verze Glide 4.16+ stabilně pracuje s 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"
}

// Pro Kotlin použijte kapt
// kapt "com.github.bumptech.glide:compiler:4.16.0"

Vytvoření AppGlideModule

AppGlideModule — povinná komponenta pro nastavení Glide. Umožňuje nastavit velikost mezipaměti, vlastní HttpStack a zaregistrovat vlastní dekodéry. Modul je skenován Glide při spuštění aplikace. Anotace @GlideModule jej automaticky registruje.

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)
        );
    }
}

Příklady použití Glide

Příklady níže demonstrují typické scénáře: načítání obrázku, práce s GIF a extrahování video snímku.

Načítání obrázku s placeholderem

Základní načítání přes Glide.with().load().into() — minimální kód pro zobrazení obrázku ze sítě. Glide automaticky přizpůsobí velikost ImageView. Placeholder se zobrazí během načítání a error — při chybě.

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)

Načítání GIF obrázku

GIF se načítá stejně jako statický obrázek — Glide automaticky rozpozná formát podle typu obsahu. Pro vynucené načítání jako statického obrázku použijte asBitmap(), pro GIF — asGif(). Glide efektivně dekóduje pouze viditelné snímky.

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

// Načti první snímek GIFu jako statický obrázek
Glide.with(context)
    .asBitmap()
    .load("https://example.com/animation.gif")
    .into(imageView)

Načítání video snímku

Video snímek je extrahován Glide podle URI místního nebo vzdáleného videa. Ve výchozím nastavení Glide načte klíčový snímek. Pro určení konkrétního časového razítka se používá frameMillis. To je vhodné pro zobrazení náhledu v galerii videa.

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

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

Optimalizace Glide pro velké seznamy

Optimalizace Glide pro RecyclerView — kritická dovednost při vývoji aplikací s velkým množstvím obrázků. Správné nastavení zabraňuje zpožděním a chybám OOM.

Jednou z klíčových možností Glide — integrace s RecyclerView prostřednictvím RecyclerViewPreloader. Tato komponenta analyzuje rychlost posouvání a směr pohybu, přednačítá obrázky, které se objeví na obrazovce za několik prvků. Pro práci s přednačítačem je třeba implementovat rozhraní PreloadSizeProvider a předat jej konstruktoru spolu s cílovým ImageView.

Použití metody override() s přesnými rozměry ImageView výrazně urychluje načítání. Když Glide zná přesnou velikost cíle, může dekódovat obrázek rovnou v požadovaném rozlišení a přeskočit fázi škálování. To zkracuje dobu dekódování a snižuje špičkovou spotřebu paměti o 30–40%.

Pro zdroje s heterogenním obsahem používejte různé RequestOptions pro každý typ prvku. Například pro velké bannerové obrázky lze nastavit override(1200, 600) a kvalitu RGB_565, pro avatary — override(200, 200) a zaoblení pomocí transform. Tento přístup umožňuje optimálně využívat zdroje pro každý typ obsahu.

Zpracování chyb načítání

Glide poskytuje flexibilní možnosti zpracování chyb prostřednictvím error obrázků a vlastního RequestListener. RequestListener umožňuje reagovat na úspěšné načítání nebo chybu, logovat selhání nebo odesílat analytiku. Lze také nastavit fallback — obrázek zobrazený, když load() obdrží null místo odkazu.

Použijte RecyclerViewPreloader pro přednačítání obrázků dříve, než k nim uživatel doscrolluje. Glide podporuje integraci s RecyclerView prostřednictvím přednačítače, který analyzuje rychlost posouvání a načítá obrázky předem.

Thumbnail multiplicace umožňuje nejprve zobrazit zmenšenou verzi obrázku a poté načíst plnou. Volání thumbnail(0.25f) načte verzi 25% velikosti, která se zobrazí okamžitě, zatímco plnohodnotný obrázek se načte později. To vytváří pocit okamžitého načítání.

Pro seznamové adaptéry používejte .override() s přesnými rozměry ImageView, aby Glide obrázek pokaždé neškáloval. To snižuje zatížení CPU a spotřebu paměti. Velikost mezipaměti se volí experimentálně, ale 250 MB pro disk a 20% dostupné paměti jsou dobrým výchozím bodem.

Často kladené otázky

Čím se Glide liší od Picasso?

Glide podporuje GIF, video snímky a animované WebP. Efektivněji spravuje paměť a je doporučován Googlem. Picasso je menší a jednodušší na použití. Pro složité projekty volte Glide.

Jak se Glide váže na životní cyklus?

Glide přijímá LifecycleOwner (Fragment, Activity) nebo View. Knihovna automaticky sleduje stav prostřednictvím LifecycleObserver: pozastavuje načítání při pauze a ruší při zničení, čímž zabraňuje únikům.

Lze v Glide načíst pouze první snímek GIFu?

Ano, použijte asBitmap() před load(). Glide načte GIF jako statický obrázek a zobrazí pouze první snímek. To je užitečné pro seznamy, kde je GIF animace nežádoucí kvůli výkonu.

Jak ovlivňuje mezipaměť Glide výkon?

Mezipaměť Glide se skládá ze tří úrovní: aktivní zdroje (právě používané), RAM (LRU cache) a disk (LruCache). Obrázky načtené z mezipaměti se zobrazí okamžitě. Mezipaměť se automaticky čistí při nedostatku paměti.

Jak nastavit vlastního HTTP klienta pro Glide?

Vlastní HTTP klient se registruje přes OkHttpUrlLoader v AppGlideModule. Přepište registerComponents a zaregistrujte svůj OkHttpClient. To umožňuje přidat interceptory, certifikáty a vlastní časové limity.

Shrnutí

  • Glide — knihovna pro načítání obrázků od Googlu s podporou GIF a video snímků
  • Tříúrovňová mezipaměť zajišťuje okamžitý přístup k opakovaně načítaným obrázkům
  • Životní cyklus pozastavuje a ruší požadavky automaticky
  • Video snímky jsou extrahovány z místních a vzdálených videí přes asBitmap
  • Thumbnail multiplicace urychluje zobrazování obrázků v seznamech
  • Doporučení Googlu činí Glide standardem pro Android aplikace
  • RecyclerViewPreloader přednačítá obrázky před doscrollováním uživatele

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také