ウルトラ HDR 画像を表示する

ウルトラ HDR 画像形式: 画像により多くの情報を保存できます 光の強さを考慮し、ハイライトとシャドウをより細かく調整します。 強烈な色合いにしますAndroid は、ウルトラ HDR 画像の最初の部分をサポートします。 Android 14(API レベル 34)を使用した場合。これらのバージョンでアプリが実行されている場合は、 これらの画像を適切に表示するようアプリを構成することが重要です。反対側 アプリでウルトラ HDR 画像を表示していない場合は、 ウルトラ HDR ディスプレイが有効になっていない可能性があります。このページでは、Google Cloud で グラフィックがウルトラ HDR 対応かどうか、およびウルトラ HDR を適切に表示する方法について説明しました。

標準ダイナミック レンジとハイ ダイナミック レンジの違いのシミュレーションを示すグラフィック曇り空のある風景を示しています。HDR をシミュレートした右半分は、ハイライトが明るく、シャドウが暗く、色が鮮明になっています。
図 1. 標準テストと標準テストの相違点をシミュレーションし、 ダイナミック レンジ(SDR)画像とハイ ダイナミック レンジ(HDR)画像に対応しています。デバイスが HDR 画像では、シャドウをより暗く、ハイライトをより明るくできます。

ゲインマップの有無を確認する

ウルトラ HDR 画像にはゲインマップが含まれます。ゲインマップは、 値を使用して、画像内の各ピクセルの明るさの増大を判定します。確認するには 画像がウルトラ HDR 形式である場合は、画像やドローアブルを BitmapBitmap.hasGainMap() を呼び出します。 (Android 14 以降で利用可能)を使用して、ゲインマップがあるかどうかを確認します。

ウルトラ HDR を表示するようにウィンドウを設定する

ウルトラ HDR 画像をフル ダイナミック レンジで表示するには、ウィンドウの色を設定します モードを ActivityInfo.COLOR_MODE_HDR に設定します。これを行うには、 ウィンドウの setColorMode() メソッドを使用します。(これらの API は、 Android 8 以降で利用できます。ただし、ウルトラ 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);

参考情報

ウルトラ HDR 画像について詳しくは、以下の参考情報をご覧ください。