Glide, come Picasso, può caricare e visualizzare immagini da diverse fonti, occupandosi anche della memorizzazione nella cache e mantenendo un basso impatto sulla memoria durante la manipolazione delle immagini. Le app ufficiali di Google (come l’app per Google I/O 2015) utilizzano Glide. In questo articolo, esploreremo le funzionalità di Glide e i motivi per cui è superiore sotto alcuni aspetti.
Glide è una libreria di caricamento immagini per Android sviluppata da bumptech e consigliata da Google. È stata utilizzata in molti progetti open source di Google, inclusa l’applicazione ufficiale per Google I/O 2015. Fornisce supporto per GIF animate e gestisce il caricamento e la memorizzazione nella cache delle immagini. Il supporto per le GIF animate non è attualmente implementato in Picasso. Sì, le immagini svolgono un ruolo fondamentale nel rendere l’interfaccia utente di un’app più interattiva e intuitiva. Pertanto, come sviluppatori Android, prestare attenzione all’utilizzo delle immagini nelle app. Dovremmo gestire i diversi aspetti di un’immagine, come immagini lente e non reattive, problemi di memoria, errori di caricamento e molti altri. Se non gestisci questi aspetti nella tua applicazione, la tua app darà una cattiva impressione agli utenti.
Usare Glide nella tua app
Implementazione
Per utilizzare Glide nel progetto Android, dobbiamo aggiungere la dipendenza nel file build.gradle . Quindi, per aggiungere la dipendenza, apri il file app/build.gradle nella cartella app del tuo progetto Android e aggiungi le seguenti righe al suo interno:
implementazione ("com.github.bumptech.glide:glide:4.16.0")
Ora sincronizza nuovamente il tuo progetto.
(Facoltativo) Aggiungi il permesso Internet nel Manifest
Se vuoi caricare l’immagine da una risorsa online, aggiungi l’autorizzazione Internet nel file AndroidManifest.xml. Apri il file manifest.xml e aggiungi la seguente riga:
<uses-permission android:name="android.permission.INTERNET"/>
File activity_main.xml
Ora modifica il file activity_main.xml per aggiungere l’immagine:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
File MainActivity.java
Adesso andremo a caricare la nostra immagine da una risorsa onlie:
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import com.bumptech.glide.Glide;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// add this code
ImageView imageView = findViewById(R.id.imageView);
Glide.with(this)
.load("https://website.com/images/gfglogo.png")
.into(imageView);
}
}
Per prima cosa stiamo ottenendo il riferimento all’immagine nel layout e successivamente tramite Glide stiamo caricando l’immagine al suo interno.
Utilizzo avanzato
Per qualsiasi applicazione in tempo reale, dobbiamo considerare tutti i casi possibili. Nel codice precedente, memorizziamo semplicemente l’immagine dal collegamento al server nell’imageView. Ci sono altri casi.
Ridimensioare
Glide.with(context)
.load("YOUR IMAGE URL HERE")
.override(WIDTH, HEIGHT)
.into(imageView);
Qui utilizziamo Glide per recuperare un’immagine remota e sovrascriverla (ridimensionarla) prima di visualizzarla in una vista immagine.
Placeholder
Glide.with(context)
.load("YOUR IMAGE URL HERE")
.placeholder(R.drawable.placeholder)
.into(imageView);
Se l’applicazione si basa su risorse remote, è importante aggiungere un fallback sotto forma di immagine segnaposto. L’immagine segnaposto viene visualizzata immediatamente e sostituita dall’immagine remota non appena Glide ha completato il recupero.
Gestione degli errori
Glide.with(context)
.load("YOUR IMAGE URL HERE")
.placeholder(R.drawable.placeholder)
.error(R.drawable.imagenotfound)
.into(imageView);
Abbiamo già visto come funziona il metodo segnaposto, ma esiste anche un metodo di errore che accetta un’immagine segnaposto. Glide proverà a scaricare l’immagine remota tre volte e visualizzerà l’immagine segnaposto di errore se non è riuscito a recuperare la risorsa remota.
Supporto delle GIF
Glide.with(context)
.asGif()
.load("YOUR GIF URL HERE")
.into(imageView)
Effetti
Immagine sfocata
Glide.with(context)
.load("YOUR IMAGE URL HERE")
.apply(RequestOptions.bitmapTransform(BlurTransformation(radius, margin)))
.into(imageView)
Trasformazione multipla
Glide.with(context)
.load("YOUR IMAGE URL HERE")
.apply(
RequestOptions.bitmapTransform(
MultiTransformation(
BlurTransformation(25),
CropCircleTransformation()
)
)
)
.into(imageView)
Ritaglio circolare
Glide.with(context)
.load("YOUR IMAGE URL HERE")
.apply(
RequestOptions.bitmapTransform(
CropCircleTransformation()
)
)
.into(imageView)
Angoli arrotondati
Glide.with(context)
.load("YOUR IMAGE URL HERE")
.apply(
RequestOptions.bitmapTransform(
RoundedCornersTransformation(radius, margin)
)
)
.into(imageView)
Conclusione
Glide si conferma una delle librerie più complete e potenti per la gestione delle immagini su Android. Dalla semplicità di utilizzo alle funzionalità avanzate come il supporto alle GIF, trasformazioni grafiche, caching intelligente e gestione degli errori, offre tutto ciò di cui uno sviluppatore ha bisogno per garantire un’esperienza utente fluida e professionale. A differenza di alternative come Picasso, Glide risulta spesso più efficiente nella gestione della memoria e nella personalizzazione del rendering delle immagini. Se stai sviluppando un’app Android che fa uso intensivo di contenuti visivi, Glide è sicuramente una scelta da considerare per mantenere alte le prestazioni e migliorare l’interfaccia utente.