Les GIF animés améliorent la communication et l'expression de soi, en ajoutant un élément dynamique et engageant aux conversations qui permet aux utilisateurs de transmettre des émotions, des réactions et de l'humour plus efficacement que les images statiques ou le texte seul. La popularité des GIF dans la culture en ligne rend leur intégration essentielle pour rester pertinent et attrayant pour les utilisateurs qui attendent des fonctionnalités modernes et une expérience multimédia riche.
Afficher un GIF animé à l'aide d'une bibliothèque de chargement d'images
Les bibliothèques de chargement d'images font le gros du travail à votre place, en ajoutant souvent la compatibilité rétrocompatible avec des fonctionnalités telles que les GIF animés ; Le code suivant montre comment implémenter la lecture de GIF animés à l'aide de la bibliothèque de chargement d'images Coil :
Ajoutez la dépendance Coil pour le GIF:
implementation("io.coil-kt:coil-gif:2.6.0")
Créez le chargeur compatible avec les GIF à l'aide de la plate-forme ImageDecoder, ajoutée sous Android 9 (niveau d'API 28), ainsi que le GifDecoder de Coil pour assurer la rétrocompatibilité:
val gifEnabledLoader = ImageLoader.Builder(this)
.components {
if ( SDK_INT >= 28 ) {
add(ImageDecoderDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
}.build()
Utilisez gifEnabledLoader dans votre composable Coil AsyncImage:
AsyncImage(
imageLoader = gifEnabledLoader,
...
)
Afficher un GIF animé à l'aide de la prise en charge de la plate-forme Android
AsyncImage(
model = request,
imageLoader = videoEnabledLoader,
contentDescription = null
)
Android 9 et versions ultérieures (niveau d'API 28) sont compatibles avec les fichiers GIF animés. Avec un d'une bibliothèque Accompanist, Jetpack Compose peut lire ces animations avec seulement quelques lignes de code.
Ajoutez la dépendance de la bibliothèque Accompanist pour prendre en charge les drawables:
implementation("com.google.accompanist:accompanist-drawablepainter:0.35.0-alpha")
Créer une méthode qui charge le GIF animé dans un AnimatedImageDrawable à l'aide de 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
}
Utilisez rememberDrawablePainter avec
AnimatedImageDrawable :
Image(
painter = rememberDrawablePainter(
drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
contentDescription = "animated gif"
)
Prise en charge des fichiers GIF à partir de claviers image et d'autres contenus multimédias
Les fichiers GIF animés sont des fonctionnalités populaires dans de nombreux claviers Android, y compris Gboard de Google. La méthode recommandée actuellement pour prendre en charge tout type d'autocollant ou d'animation, qu'il s'agisse d'un mode de saisie ou d'une autre application, consiste à utiliser un OnReceiveContentListener.
Consultez Recevoir du contenu multimédia pour découvrir comment implémenter la prise en charge de la réception d'animations GIF et d'autres contenus multimédias dans votre application.