顯示 Ultra HDR 圖片

超 HDR 圖片格式可讓圖片儲存更多資訊 產生更細緻的高亮度和陰影 還有更多鮮明的色彩Android 開始支援 Ultra HDR 圖片 與 Android 14 (API 級別 34) 相容。如果你的應用程式正在這些版本中運作 請務必設定您的應用程式,以正確顯示這些圖片。另一部 如果應用程式未顯示 Ultra HDR 圖片,您可以將裝置 不必啟用 Ultra HDR 螢幕本頁說明如何確認 以及如何正確顯示圖像。

圖片顯示標準動態範圍與高動態範圍之間的差異。圖片顯示擁有多雲天空的風景。右半部則是模擬 HDR 效果,具備較亮的高亮度、陰影部分和更鮮明的色彩。
圖 1. 模擬標準之間的差異 動態範圍 (SDR) 和高動態範圍 (HDR) 影像。如果裝置支援 HDR 模式可讓影像的陰影較深,高亮度部分則較亮。

檢查增益地圖是否存在

Ultra HDR 圖片包含反轉地圖。增益圖為 用於判斷圖片中每個像素的增加亮度。如何進行驗證 如果圖片為 Ultra HDR 格式,請將圖像或可繪項目轉換為 Bitmap,並呼叫 Bitmap.hasGainMap() (自 Android 14 起推出) 檢查是否有取得地圖。

設定視窗以顯示 Ultra HDR

如要顯示完整動態範圍的 Ultra HDR 圖片,請設定視窗色彩 模式設為 ActivityInfo.COLOR_MODE_HDR。方法是呼叫 視窗的 setColorMode() 方法。(這些 API 是 提供的功能但不會以 UHD 超高畫質顯示圖像 裝置執行 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 圖片,請參閱下列其他資源: