Ultra HDR 圖片格式可讓圖片儲存更多光線強度資訊,呈現更細緻的亮部和陰影,以及更鮮豔的色彩。Android 14 (API 級別 34) 以上版本支援 Ultra HDR 圖片。如果應用程式在這些版本上執行,請務必設定應用程式,確保圖片能正確顯示。另一方面,如果應用程式未顯示 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 以上版本使用,但除非裝置搭載 Android 14 以上版本,否則圖片不會以 Ultra HDR 格式顯示)。
平台比一比
以下程式碼顯示整個流程的樣貌。這段程式碼會假設圖片已載入 Bitmap,並檢查圖片是否有增益對應。如果符合,程式碼會將視窗的色彩模式切換為 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 開發人員經驗談:Instagram 搶先採用 Ultra HDR,在短短 3 個月內徹底改變使用者體驗