Animowane GIF-y ułatwiają komunikację i wyrażanie siebie, dodając do rozmów dynamiczny i zaangażowany element, który pozwala użytkownikom przekazywać emocje, reakcje i humor skuteczniej niż same statyczne obrazy czy 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świetlanie animowanego GIF-a za pomocą biblioteki ładowania obrazów
Biblioteki wczytywania obrazów wykonują za Ciebie wiele ciężkiej pracy, często dodając obsługę funkcji takich jak animowane GIF-y. Poniższy kod pokazuje, jak zaimplementować odtwarzanie animowanych GIF-ów za pomocą biblioteki do ładowania obrazów Coil:
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ę, która wczytuje animowany GIF do 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żyj klasy rememberDrawablePainter z parametrem
AnimatedImageDrawable:
Image(
painter = rememberDrawablePainter(
drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
contentDescription = "animated gif"
)
Obsługa plików GIF z klawiatur obrazkowych i innych treści multimedialnych
Animowane pliki GIF to popularne funkcje wielu klawiatur z Androidem, w tym:
Gboard od Google. Obecnie zalecany sposób obsługi wszelkiego rodzaju naklejek i animacji, niezależnie od tego, czy pochodzą one z metody wprowadzania tekstu czy z innej aplikacji, to użycie 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.