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