Le GIF animate migliorano la comunicazione e l'espressione personale, aggiungendo un elemento dinamico e elementi coinvolgenti nelle conversazioni che consentono agli utenti di trasmettere emozioni, reazioni e umorismo in modo più efficace rispetto alle immagini statiche o al solo testo. La popolarità delle GIF nella cultura online rende la loro integrazione essenziale per rimanere pertinenti e accattivanti per gli utenti che si aspettano funzionalità moderne e un'esperienza multimediale ricca.
Visualizza una GIF animata usando una libreria di caricamento immagini
Le librerie per il caricamento delle immagini svolgono gran parte del lavoro pesante, spesso aggiungendo supporto compatibile con le versioni precedenti di funzionalità quali GIF animate. Le seguenti il codice illustra come implementare la riproduzione di GIF animate utilizzando il Libreria per il caricamento delle immagini Coil:
Aggiungi la dipendenza da Coil per le GIF:
implementation("io.coil-kt:coil-gif:2.6.0")
Crea il caricatore compatibile con le GIF utilizzando sia ImageDecoder della piattaforma, aggiunto in Android 9 (livello API 28), sia GifDecoder di Coil per la compatibilità con le versioni precedenti:
val gifEnabledLoader = ImageLoader.Builder(this)
.components {
if ( SDK_INT >= 28 ) {
add(ImageDecoderDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
}.build()
Utilizza il componente gifEnabledLoader nel componibile Coil AsyncImage:
AsyncImage(
imageLoader = gifEnabledLoader,
...
)
Visualizzare una GIF animata utilizzando il supporto della piattaforma Android
AsyncImage(
model = request,
imageLoader = videoEnabledLoader,
contentDescription = null
)
Android 9 e versioni successive (livello API 28) supportano i file GIF animate. Con un un piccolo aiuto da una libreria accompagnati, Jetpack Compose può riprodurre queste animazioni con poche righe di codice.
Aggiungi la dipendenza dalla libreria accompagnatore per supportare i disegnabili pittori:
implementation("com.google.accompanist:accompanist-drawablepainter:0.35.0-alpha")
Crea un metodo che carichi la GIF animata in un AnimatedImageDrawable utilizzando ImageDecoder:
private fun createAnimatedImageDrawableFromImageDecoder(context: Context, uri: Uri): AnimatedImageDrawable {
val source = ImageDecoder.createSource(context.contentResolver, uri)
val drawable = ImageDecoder.decodeDrawable(source)
return drawable as AnimatedImageDrawable
}
Utilizza rememberDrawablePainter con
AnimatedImageDrawable:
Image(
painter = rememberDrawablePainter(
drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
contentDescription = "animated gif"
)
Supporta file GIF da tastiere di immagini e altri contenuti avanzati
I file GIF animati sono funzionalità molto diffuse in molte tastiere Android, tra cui Gboard di Google. Al momento, il modo consigliato per supportare qualsiasi tipo di OnReceiveContentListener, che provenga dal metodo di immissione o da un'altra app, è utilizzare un'OnReceiveContentListener.
Consulta la sezione Ricevere contenuti avanzati per scoprire di più su come implementare il supporto per la ricezione di animazioni GIF e altri contenuti multimediali avanzati nella tua app.