แสดง GIF แบบเคลื่อนไหว

GIF แบบเคลื่อนไหวช่วยปรับปรุงการสื่อสารและการแสดงออก องค์ประกอบที่ดึงดูดใจในการสนทนาที่ให้ผู้ใช้ถ่ายทอดอารมณ์ได้ รีแอ็กชัน และอารมณ์ขันได้มีประสิทธิภาพกว่าภาพนิ่งหรือข้อความเพียงอย่างเดียว ความนิยมของ GIF ในวัฒนธรรมออนไลน์ทำให้การผนวกรวมรูปภาพเป็นสิ่งจำเป็น เพื่อให้มีความเกี่ยวข้องและดึงดูดผู้ใช้ที่ต้องการฟีเจอร์ที่ทันสมัย มัลติมีเดียอย่างแนบเนียน

แสดง GIF แบบเคลื่อนไหวโดยใช้ไลบรารีการโหลดรูปภาพ

ไลบรารีการโหลดรูปภาพช่วยอำนวยความสะดวกได้มากมายสำหรับคุณ โดยมักจะเพิ่ม การรองรับฟีเจอร์ที่เข้ากันได้แบบย้อนหลัง เช่น GIF แบบเคลื่อนไหว โค้ดต่อไปนี้แสดงวิธีใช้การเล่น GIF แบบเคลื่อนไหวโดยใช้คลังการโหลดรูปภาพ Coil

เพิ่มการพึ่งพา 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 Compose สามารถ เล่นภาพเคลื่อนไหวเหล่านี้โดยใช้โค้ดเพียงไม่กี่บรรทัด

เพิ่มทรัพยากร Dependency ของไลบรารี Accompanist เพื่อรองรับภาพวาดที่ถอนออกได้โดยทำดังนี้

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 และสื่อสมบูรณ์อื่นๆ ในแอปของคุณ