รูปแบบรูปภาพ Ultra HDR ช่วยให้รูปภาพจัดเก็บข้อมูลเกี่ยวกับความเข้มของแสงได้มากขึ้น ส่งผลให้ไฮไลต์และเงามีรายละเอียดมากขึ้น รวมถึงสีสันที่เข้มข้นยิ่งขึ้น Android รองรับรูปภาพ Ultra HDR ตั้งแต่ Android 14 (API ระดับ 34) เป็นต้นไป หากแอปของคุณทํางานในเวอร์ชันดังกล่าว คุณควรกําหนดค่าแอปให้แสดงรูปภาพเหล่านี้อย่างถูกต้อง ในทางกลับกัน หากแอปของคุณไม่แสดงภาพ Ultra HDR คุณจะประหยัดทรัพยากรของอุปกรณ์ได้ด้วยการไม่เปิดใช้การแสดงผล Ultra HDR หน้านี้จะอธิบายวิธีตรวจสอบว่ากราฟิกรองรับ Ultra HDR หรือไม่ และวิธีแสดงกราฟิกอย่างถูกต้อง
ตรวจสอบว่ามีแผนที่การขยายสัญญาณหรือไม่
รูปภาพ Ultra HDR มีแผนที่การขยาย แผนที่การขยายสัญญาณใช้เพื่อกำหนดความสว่างที่เพิ่มขึ้นของพิกเซลแต่ละพิกเซลในรูปภาพ หากต้องการตรวจสอบว่ารูปภาพอยู่ในรูปแบบ Ultra HDR ให้แปลงรูปภาพหรือรูปภาพที่วาดได้เป็นรูป Bitmap
แล้วเรียกใช้ Bitmap.hasGainMap()
(ใช้ได้ตั้งแต่ Android 14 เป็นต้นไป) เพื่อตรวจสอบว่ารูปภาพมีแผนที่การขยายหรือไม่
กำหนดค่าหน้าต่างให้แสดง Ultra HDR
หากต้องการแสดงรูปภาพ Ultra HDR ที่มีช่วงไดนามิกเต็มรูปแบบ ให้ตั้งค่าโหมดสีของหน้าต่างเป็น ActivityInfo.COLOR_MODE_HDR
ซึ่งทำได้โดยการเรียกใช้เมธอด setColorMode()
ของหน้าต่าง (API เหล่านี้พร้อมใช้งานใน Android 8 ขึ้นไป แต่รูปภาพจะไม่แสดงใน Ultra HDR เว้นแต่อุปกรณ์จะใช้ Android 14 ขึ้นไป)
สรุปข้อมูลทั้งหมด
โค้ดต่อไปนี้แสดงลักษณะของกระบวนการทั้งหมด โค้ดนี้ถือว่ามีการโหลดรูปภาพลงในบิตแมป และตรวจสอบว่ารูปภาพมีแผนที่การขยายสัญญาณหรือไม่ หากมี โค้ดจะเปลี่ยนโหมดสีของหน้าต่างเป็น COLOR_MODE_HDR
หากภาพไม่มีแผนที่การขยาย โค้ดจะเปลี่ยนหน้าต่างเป็นโหมดสีเริ่มต้น
Kotlin
val bitmap = /* Get Bitmap from Image Resource */ binding.imageContainer.setImageBitmap(bitmap) // Set color mode of the activity to the correct color mode. requireActivity().window.colorMode = if (bitmap.hasGainmap()) ActivityInfo.COLOR_MODE_HDR else ActivityInfo.COLOR_MODE_DEFAULT
Java
final Bitmap bitmap = /* Get Bitmap from Image Resource */ binding.imageContainer.setImageBitmap(bitmap); // Set color mode of the activity to the correct color mode. int colorMode = ActivityInfo.COLOR_MODE_DEFAULT; if (bitmap.hasGainmap()) colorMode = ActivityInfo.COLOR_MODE_HDR; requireActivity().getWindow().setColorMode(colorMode);
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปภาพ Ultra HDR ได้ที่แหล่งข้อมูลต่อไปนี้
- วิดีโอ: การสร้างประสบการณ์การใช้งานสื่อคุณภาพสูงบน Android
- แอปตัวอย่าง: การแสดง Ultra HDR
- ข้อกำหนดรูปแบบรูปภาพ Ultra HDR
- วิดีโอ: เรื่องราวของนักพัฒนาแอป Android: การนำ Ultra HDR มาใช้ตั้งแต่เนิ่นๆ ของ Instagram เปลี่ยน UX ในเพียง 3 เดือน