הצגת קובצי GIF מונפשים

קובצי GIF מונפשים משפרים את התקשורת ואת הביטוי העצמי, ומוסיפים רכיב דינמי ומעניין לשיחות. הם מאפשרים למשתמשים להעביר רגשות, תגובות והומור בצורה יעילה יותר מאשר תמונות סטטיות או טקסט בלבד. בגלל הפופולריות של קובצי GIF בתרבות האינטרנט, השילוב שלהם חיוני אם הם נשארים רלוונטיים ומושכים משתמשים שמצפים לתכונות מודרניות חוויית מולטימדיה עשירה.

הצגת GIF מונפש באמצעות ספריית לטעינת תמונות

ספריות הטעינה של התמונות עושות את העבודה הקשה בשבילך, ולעיתים קרובות מוסיפה תמיכה בתאימות לאחור בתכונות כמו קובצי GIF מונפשים. הבאים שמדגים איך להטמיע הפעלת GIF מונפש באמצעות ספרייה לטעינה של תמונת סליל:

מוסיפים את התלות של Coil ל-GIF:

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

יוצרים כלי טעינה עם GIF באמצעות הפלטפורמה ImageDecoder, שנוסף ב-Android 9 (רמת API 28), וגם ב-GifDecoder של Coil לתאימות לאחור:

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

משתמשים ב-gifEnabledLoader בתוכן הקומפוזבילי AsyncImage של Coil:

AsyncImage(
    imageLoader = gifEnabledLoader,
    ...
)

הצגת GIF מונפש באמצעות התמיכה בפלטפורמת Android

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

Android בגרסה 9 ואילך (רמת API 28) כולל תמיכה מובנית בקובצי GIF מונפשים. עם עם קצת עזרה מספריית Accompanist, תוכלו להשתמש ב-Jetpack פיתוח נייטיב מפעילים את האנימציות האלה בעזרת כמה שורות קוד בלבד.

מוסיפים את התלות בספריית Accompanist כדי לתמוך בציירים של drawable:

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

יוצרים שיטה שטוענת את ה-GIF המונפש לתוך AnimatedImageDrawable באמצעות 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
}

משתמשים ב-rememberDrawablePainter עם AnimatedImageDrawable:

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

תמיכה בקובצי GIF ממקלדות של תמונות ותוכן עשיר אחר

קובצי GIF מונפשים הם תכונות פופולריות במקלדות רבות של Android, כולל Gboard מ-Google. הדרך המומלצת הנוכחית לתמוך בכל סוג סטיקר או אנימציה, בין שהם מגיעים משיטת הקלט או מסוג אחר הוא להשתמש ב-OnReceiveContentListener.

במאמר קבלת תוכן עשיר מוסבר איך להטמיע באפליקציה תמיכה בקבלת קובצי GIF מונפשים ותוכן עשיר אחר.