Charger vos images avec Glide

Glide est une bibliothèque de chargement d’images développée par bumptech et recommandé par Google. Elle est une alternative à la bibliothèque Picasso (un tutoriel est disponible ici)

glide_logo

Intégration à un projet

Pour intégrer Glide à un projet, il suffit simplement d’ajouter les lignes suivantes dans le dossier build.gradle de votre application.

    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:support-v4:23.1.1'

Glide à besoin de la bibliothèque de support app-compat-v4 pour pouvoir fonctionner correctement.

Utilisation

L’utilisation de glide est très similaire à l’utilisation de Picasso

Glide.with(this).load(url).into(imageView);

La méthode with prends en argument un context mais aussi un fragment ou une activité (elle s’occupera d’extraire le context)
Puis la méthode load permet de charger une image depuis une url et la méthode into permet d’appliquer cette image sur une ImageView.
Si vous passez une activité ou un fragment à Glide, il s’occupera, par exemple, de mettre en pause le téléchargement si l’activité/fragment passe en pause.

Vous pouvez enchaîner les appels aux différentes méthodes de glide et construire comme ça la requête et finir par l’appel à la méthode into (pour indiquer dans quel élément l’image sera chargée).

Glide va définir automatiquement le type de l’image à télécharger mais si par exemple, vous avez besoin de télécharger un spécifiquement un fichier bitmap, vous pouvez utiliser l’image asBitmap.

Glide.with(this).load(url).asBitmap().into(imageView);

Glide utilise le format RGB_565 connu pour sa faible consommation de mémoire mais vous pouvez demander à Glide d’utiliser un autre format (par exemple : ARGB_8888 qui fournit une meilleur résolution). Pour cela créer une classe qui implémente la classe GlideModule

public class MyGlideConfiguration implements GlideModule {

        @Override
        public void applyOptions(Context context, GlideBuilder builder) {
            builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
        }

    }

Et puis déclarer la balise meta-data dans le manifeste.

<meta-data android:name="com.myPackage.MyGlideConfiguration"
            android:value="GlideModule"/>

Voici une liste non exhaustive des différentes méthodes utiles que vous pouvez utiliser avec Glide :

  • animate : Permet de lancer une animation une fois que l’image est chargée
  • fitCenter / centerCrop : Permet d’appliquer la transformation “ciblée” à l’image
  • transform : Permet d’appliquer une transformation personnalisée. Votre devait créer une classe qui surcharge la classe BitmapTransformation, afin d’implémenter votre transformation.
  • placeholder : Permet d’appliquer une image provisoire en attendant que l’image ciblé finisse son téléchargement
  • fallback : Permet d’indiquer une image de secours si le téléchargement à échoué
  • skipMemoryCache : Télécharger l’image sans prendre en compte le cache
  • override : Modifier la largueur / hauteur de l’image récupérée

3 commentaires


  1. Glide change pas mal la donne en effet, et allège beaucoup d’opérations qui commençaient à devenir lourdes avec Picasso.
    Merci pour le partage !

    Répondre

  2. Pourriez-vous réaliser un tutoriel sur OkHttpClient avec la possibilité de faire un POSt et GET d’image et texte en usant de PHP/MySQL ?

    Répondre

  3. Merci bumptech et à tutos-android
    ce qui me plait c’est :
    placeholder : Permet d’appliquer une image provisoire en attendant que l’image ciblé finisse son téléchargement
    fallback : Permet d’indiquer une image de secours si le téléchargement à échoué.

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *