Animierte GIFs anzeigen

Animierte GIFs fördern die Kommunikation und die Selbstentfaltung, indem sie eine dynamische und ein interaktives Element in Unterhaltungen einbauen, mit dem Nutzende Emotionen vermitteln können, effektiver als mit statischen Bildern oder Text alleine. Die Beliebtheit von GIFs in der Onlinekultur macht ihre Einbindung unerlässlich, um für Nutzer relevant und ansprechend zu bleiben, die moderne Funktionen und eine umfassende Multimedia-Nutzung erwarten.

Animierte GIF-Datei mithilfe einer Bibliothek zum Laden von Bildern anzeigen

Die Bibliotheken für das Laden von Bildern übernehmen den Großteil der Arbeit für Sie, indem häufig Abwärtskompatible Unterstützung für Funktionen wie animierte GIFs. Die folgenden Code veranschaulicht, wie die Wiedergabe animierter GIFs mithilfe der Bibliothek zum Laden von Filmbildern:

Füge die Coil-Abhängigkeit für das GIF hinzu:

implementation("io.coil-kt:coil-gif:2.6.0")

Erstellen Sie den GIF-fähigen Loader mithilfe der Plattform ImageDecoder, in Android 9 (API-Level 28) sowie GifDecoder von Coil für die Abwärtskompatibilität:

val gifEnabledLoader = ImageLoader.Builder(this)
    .components {
        if ( SDK_INT >= 28 ) {
            add(ImageDecoderDecoder.Factory())
        } else {
            add(GifDecoder.Factory())
        }
    }.build()

Verwende den gifEnabledLoader in deinem Coil AsyncImage-Komposit:

AsyncImage(
    imageLoader = gifEnabledLoader,
    ...
)

Animiertes GIF mit Unterstützung der Android-Plattform anzeigen

AsyncImage(
     model = request,
     imageLoader = videoEnabledLoader,
     contentDescription = null
 )

Android 9 und höher (API-Level 28) unterstützen animierte GIF-Dateien. Mithilfe einer Accompanist-Bibliothek können diese Animationen in Jetpack Compose mit nur wenigen Codezeilen abgespielt werden.

Fügen Sie die Abhängigkeit der Accompanist Library hinzu, um Drawable Painter zu unterstützen:

implementation("com.google.accompanist:accompanist-drawablepainter:0.35.0-alpha")

Erstellen Sie eine Methode zum Laden der animierten GIF-Datei in ein animateImageDrawable-Element. mit 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
}

rememberDrawablePainter mit dem AnimatedImageDrawable:

Image(
    painter = rememberDrawablePainter(
        drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
     contentDescription = "animated gif"
)

Unterstützung von GIF-Dateien von Bildtastaturen und anderen Rich-Media-Inhalten

Animierte GIF-Dateien sind beliebte Funktionen in vielen Android-Tastaturen, darunter Gboard von Google. Die aktuell empfohlene Methode zur Unterstützung aller Arten von einen Sticker oder eine Animation zu erstellen, unabhängig davon, ob er von der Eingabemethode oder von einer anderen App ist die Verwendung eines OnReceiveContentListener.

Weitere Informationen zur Implementierung der Unterstützung für GIF-Animationen und andere Rich Media-Elemente in Ihrer App zu empfangen.