Animasyonlu GIF'ler iletişimi ve kendini ifade etmeyi geliştirerek dinamik ve kullanıcıların duygularını aktarmasına olanak tanıyan ilgi çekici bir öğe ve mizahın, tek başına sabit resimlere veya metinlere kıyasla daha etkili olduğunu gösteriyor. GIF'lerin online kültürdeki popülerliği, modern özellikler ve zengin bir multimedya deneyimi bekleyen kullanıcılara hitap etmek ve alakalı kalmak için GIF'leri entegre etmeyi zorunlu kılıyor.
Resim yükleme kitaplığı kullanarak animasyonlu GIF gösterme
Resim yükleme kitaplıkları, işin zor kısmını üstlenir ve genellikle ve animasyonlu GIF'ler gibi özellikler için geriye dönük uyumlu destek sunar. Aşağıdakiler Animasyonlu GIF oynatmanın Bobin resmi yükleme kitaplığı:
GIF için Coil bağımlılığını ekleyin:
implementation("io.coil-kt:coil-gif:2.6.0")
Android 9'a (API düzeyi 28) eklenen platform ImageDecoder'ı ve geriye dönük uyumluluk için Coil'in GifDecoder'ını kullanarak GIF özellikli yükleyiciyi oluşturun:
val gifEnabledLoader = ImageLoader.Builder(this)
.components {
if ( SDK_INT >= 28 ) {
add(ImageDecoderDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
}.build()
Coil AsyncImage bileşeninizde gifEnabledLoader'ı kullanın:
AsyncImage(
imageLoader = gifEnabledLoader,
...
)
Android platform desteğini kullanarak animasyonlu GIF gösterme
AsyncImage(
model = request,
imageLoader = videoEnabledLoader,
contentDescription = null
)
Android 9 ve sonraki sürümlerde (API düzeyi 28) animasyonlu GIF dosyaları için yerleşik destek vardır. Şununla Accompanist kütüphanesinin yardımıyla Jetpack Compose'u kullanabilirsiniz. yalnızca birkaç satır kodla oynatabilirsiniz.
Çekilebilir ressamları desteklemek için Eşlik eden kitaplığı bağımlılığını ekleyin:
implementation("com.google.accompanist:accompanist-drawablepainter:0.35.0-alpha")
ImageDecoder'ı kullanarak animasyonlu GIF'i AnimatedImageDrawable içine yükleyen bir yöntem oluşturun:
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 öğesini
AnimatedImageDrawable:
Image(
painter = rememberDrawablePainter(
drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
contentDescription = "animated gif"
)
Resim klavyelerindeki GIF dosyalarını ve diğer zengin içerikleri destekleyin
Animasyonlu GIF dosyaları, Google'ın Gboard'u da dahil olmak üzere birçok Android klavyesinde popüler özelliklerdir. Giriş yönteminden veya başka bir uygulamadan gelen her türlü çıkartma veya animasyonu desteklemek için şu anda önerilen yöntem, OnReceiveContentListener kullanmaktır.
Uygulamanızda GIF animasyonlarının ve diğer zengin medya öğelerinin alınması için desteği nasıl uygulayacağınız hakkında daha fazla bilgi edinmek üzere Zengin içerik alma başlıklı makaleyi inceleyin.