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 個月內徹底改變使用者體驗