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

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

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

การรองรับที่ถอนออกได้

ขณะนี้ painterResource รองรับประเภทที่ถอนออกได้ต่อไปนี้

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

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

เช่น หากต้องการโหลดรูปภาพด้วย 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)