GIF animasi meningkatkan komunikasi dan ekspresi diri, menambahkan elemen yang dinamis dan menarik ke percakapan yang memungkinkan pengguna menyampaikan emosi, reaksi, dan humor secara lebih efektif daripada gambar atau teks statis saja. Popularitas GIF dalam budaya online membuat integrasinya menjadi penting agar tetap relevan dan menarik bagi pengguna yang mengharapkan fitur modern dan pengalaman multimedia yang kaya.
Menampilkan GIF animasi menggunakan library pemuatan gambar
Library pemuatan gambar melakukan banyak tugas berat bagi Anda, sering kali menambahkan dukungan yang kompatibel dengan versi lama untuk fitur seperti GIF animasi. Kode berikut menunjukkan cara menerapkan pemutaran GIF animasi menggunakan library pemuatan gambar Coil:
Tambahkan dependensi Coil untuk GIF:
implementation("io.coil-kt:coil-gif:2.6.0")
Buat loader yang mendukung GIF menggunakan ImageDecoder platform, yang ditambahkan di Android 9 (API level 28), serta GifDecoder Coil untuk kompatibilitas mundur:
val gifEnabledLoader = ImageLoader.Builder(this)
.components {
if ( SDK_INT >= 28 ) {
add(ImageDecoderDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
}.build()
Gunakan gifEnabledLoader di composable AsyncImage Coil Anda:
AsyncImage(
imageLoader = gifEnabledLoader,
...
)
Menampilkan GIF animasi menggunakan dukungan platform Android
AsyncImage(
model = request,
imageLoader = videoEnabledLoader,
contentDescription = null
)
Android 9+ (level API 28) memiliki dukungan bawaan untuk file GIF animasi. Dengan sedikit bantuan dari library Accompanist, Jetpack Compose dapat memainkan animasi ini hanya dengan beberapa baris kode.
Tambahkan dependensi library Accompanist untuk mendukung painter drawable:
implementation("com.google.accompanist:accompanist-drawablepainter:0.35.0-alpha")
Membuat metode yang memuat GIF animasi ke dalam AnimasiImageDrawable menggunakan 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
}
Gunakan rememberDrawablePainter dengan
AnimatedImageDrawable:
Image(
painter = rememberDrawablePainter(
drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
contentDescription = "animated gif"
)
Mendukung file GIF dari keyboard gambar dan konten lengkap lainnya
File GIF animasi adalah fitur populer di banyak keyboard Android, termasuk
Gboard dari Google. Cara yang direkomendasikan saat ini
untuk mendukung segala jenis
stiker atau animasi, baik itu berasal dari metode {i>input <i}atau dari metode lain
aplikasi Anda adalah menggunakan OnReceiveContentListener.
Lihat Menerima konten lengkap untuk mempelajari lebih lanjut cara menerapkan dukungan untuk menerima animasi GIF dan multimedia lainnya di aplikasi Anda.