Wyświetlaj animowane GIF-y

Animowane GIF-y ułatwiają komunikację i wyrażanie siebie, dodając dynamiczne wciągający element rozmowy, który pozwala użytkownikom wyrażać emocje, Są bardziej skuteczne niż statyczne obrazy czy sam tekst. Popularność GIF-ów w kulturze online sprawia, że ich integracja jest kluczowa za utrzymanie trafności i atrakcyjności dla użytkowników, którzy oczekują nowoczesnych funkcji funkcje multimedialne.

Wyświetlaj animowany GIF, korzystając z biblioteki wczytującej obrazy

Biblioteki wczytywania obrazów wykonują za Ciebie dużo zadań, często dodając wsteczną obsługę takich funkcji jak animowane GIF-y. Poniżej pokazuje, jak wdrożyć odtwarzanie animowanego GIF-a za pomocą Biblioteka wczytywania obrazu cewki:

Dodaj zależność cewki do pliku GIF:

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

Utwórz program wczytujący z obsługą GIF-ów, korzystając z platformy ImageDecoder dodanej w Androidzie 9 (poziom API 28) oraz GifDecoder firmy Coil, który zapewnia zgodność wsteczną:

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

Użyj klasy gifEnabledLoader w funkcji kompozycyjnej Coil AsyncImage:

AsyncImage(
    imageLoader = gifEnabledLoader,
    ...
)

Wyświetlaj animowane GIF-y na platformie Android

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

Android 9 lub nowszy (poziom interfejsu API 28) ma wbudowaną obsługę animowanych plików GIF. Dzięki biblioteki Accompanist, Jetpack Compose aby odtworzyć te animacje za pomocą kilku wierszy kodu.

Dodaj zależność z biblioteką towarzyszącą, aby obsługiwać malarzy z możliwością rysowania:

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

Utwórz metodę wczytywania animowanego GIF-a do elementu AnimatedImageDrawable. za pomocą 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
}

Używaj elementu rememberDrawablePainter z AnimatedImageDrawable:

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

Obsługa plików GIF z klawiatur graficznych i innych treści multimedialnych

Animowane pliki GIF to popularne funkcje wielu klawiatur z Androidem, w tym: Gboard od Google. Obecny zalecany sposób wspierania naklejkę lub animację, niezależnie od tego, czy pochodzi ona z metody wprowadzania czy innego materiału, aplikacji, to OnReceiveContentListener.

Przeczytaj artykuł Otrzymywanie szczegółowych treści, aby dowiedzieć się więcej o obsłudze obsługiwanych formatów odbieranie animacji GIF i innych multimediów w aplikacji.