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.

Animiertes GIF mit einer Bildladebibliothek 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 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()

gifEnabledLoader in der zusammensetzbaren Funktion „Coil AsyncImage“ verwenden:

AsyncImage(
    imageLoader = gifEnabledLoader,
    ...
)

Animiertes GIF über den Android-Plattformsupport anzeigen

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

Android 9 oder höher (API-Level 28) bietet integrierte Unterstützung für animierte GIF-Dateien. Mit einem Unterstützung durch eine Accompanist-Bibliothek erhalten, kann Jetpack Compose können diese Animationen mit ein paar Zeilen Code 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"
)

GIF-Dateien von Bildtastaturen und anderen Rich-Content unterstützen

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 zum Implementieren des Empfangs von GIF-Animationen und anderen Rich-Media-Inhalten in Ihrer App finden Sie unter Rich-Inhalte empfangen.