超 HDR 圖片格式可讓圖片儲存更多有關光線強度的資訊,使高亮度和陰影部分呈現更細緻的亮光和色彩。Android 從 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 格式)。
平台比一比
下列程式碼顯示整個程序的樣子。此程式碼假設圖片已載入點陣圖,並檢查圖片是否有取得地圖。如果會,程式碼會將視窗的顏色模式切換為 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
- 超 HDR 圖片格式規格