กำลังโหลดรูปภาพ

โหลดรูปภาพจากดิสก์

ใช้ Composable Image เพื่อแสดงกราฟิกบนหน้าจอ หากต้องการโหลดรูปภาพ (เช่น PNG, JPEG, WEBP) หรือทรัพยากรเวกเตอร์จากดิสก์ ให้ใช้ API painterResource กับการอ้างอิงรูปภาพ คุณไม่จำเป็นต้องทราบประเภท ของชิ้นงาน เพียงใช้ painterResource ในตัวแก้ไข Image หรือ paint

DrawScope:

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

ระบุ contentDescription สำหรับองค์ประกอบภาพบนหน้าจอเพื่อให้มั่นใจว่าแอปเข้าถึงได้ TalkBack จะอ่านคำอธิบายเนื้อหา ดังนั้นคุณต้อง ตรวจสอบว่าข้อความมีความหมายหากอ่านออกเสียงและแปล ใน ตัวอย่างก่อนหน้า เราใช้ stringResource() เพื่อโหลดคำอธิบายเนื้อหาที่แปลแล้วจากไฟล์ strings.xml หากองค์ประกอบภาพบนหน้าจอมีไว้เพื่อการตกแต่งเท่านั้น ให้ตั้งค่า contentDescription เป็น null เพื่อให้โปรแกรมอ่านหน้าจอไม่สนใจองค์ประกอบดังกล่าว

หากต้องการฟังก์ชันการทำงานที่เจาะจงในระดับล่างกว่า ImageBitmap คุณสามารถใช้ ImageBitmap.imageResource() เพื่อโหลดบิตแมปได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ ImageBitmap ได้ที่ส่วนImageBitmap กับ ImageVector

การรองรับ Drawable

painterResource รองรับประเภท Drawable ต่อไปนี้

โหลดรูปภาพจากอินเทอร์เน็ต

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

เช่น หากต้องการโหลดรูปภาพด้วย Coil จาก Instacart ให้เพิ่มไลบรารีลงในไฟล์ Gradle แล้วใช้ AsyncImage เพื่อโหลดรูปภาพจาก URL

AsyncImage(
    model = "https://example.com/image.jpg",
    contentDescription = "Translated description of what the image contains"
)

ไลบรารีการโหลดรูปภาพที่ขับเคลื่อนโดย Kotlin Coroutines (Instacart)

ไลบรารีการโหลดรูปภาพที่รวดเร็วและมีประสิทธิภาพสำหรับ Android ซึ่งมุ่งเน้นการเลื่อนอย่างราบรื่น (Google)

แหล่งข้อมูลเพิ่มเติม