Animasyonlu GIF'leri göster

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 görsellere veya metinlere kıyasla daha etkili olduğunu gösteriyor. GIF'lerin internet kültüründeki popülerliği, entegrasyonlarını vazgeçilmez hale getiriyor modern özellikler ve gelişmiş bir görünüm arayan kullanıcılar için alakalı olmaya ve zengin multimedya deneyimi.

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")

Platformdaki ImageDecoder'ı kullanarak GIF özellikli yükleyiciyi oluşturun. ve ayrıca geriye dönük uyumluluk için Coil'in GifDecoder'ını kullandığınızdan emin olun:

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

Coil AsyncImage composable'ınızda 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ümler (API düzeyi 28) animasyonlu GIF dosyaları için yerleşik desteğe sahiptir. Şununla Eccompanist kütüphanesinin yardımıyla Jetpack Compose'u kullanabilirsiniz. yalnızca birkaç satır kodla oynatabilirsiniz.

Çizilebilir boyacılar için Accompanist kitaplığı bağımlılığını ekleyin:

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

Animasyonlu GIF'i bir AnimatedImageDrawable öğesine yükleyen bir yöntem oluşturun ImageDecoder kullanarak:

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 klavyelerinden ve diğer zengin içeriklerden GIF dosyaları desteği

Animasyonlu GIF dosyaları, aşağıdakiler de dahil olmak üzere birçok Android klavyesinde popüler bir özelliktir. Google'dan Gboard. Şu anda her tür desteğinizi desteklemek için önerilen yol giriş yönteminden veya başka bir kaynaktan gelen çıkartma ya da animasyon OnReceiveContentListener kullanmaktır.

Desteğin nasıl uygulanacağıyla ilgili daha fazla bilgi edinmek için Zengin içerik alma bölümüne bakın GIF animasyonları ve diğer rich media içeriklerini almak.