Ultra HDR görüntüleri göster

Ultra HDR resim biçimi, resimlerin ışık yoğunluğu hakkında daha fazla bilgi depolamasına olanak tanır. Böylece, daha ayrıntılı parlak alanlar ve gölgeler, daha yoğun renkler elde edilir. Android, Android 14'ten (API düzeyi 34) itibaren Ultra HDR resimleri destekler. Uygulamanız bu sürümlerde çalışıyorsa uygulamanızı bu resimleri düzgün görüntüleyecek şekilde yapılandırmak önemlidir. Öte yandan, uygulamanızda Ultra HDR resimler gösterilmiyorsa Ultra HDR ekranı etkinleştirmeyerek cihaz kaynaklarından tasarruf edebilirsiniz. Bu sayfada, grafiklerin Ultra HDR'yi destekleyip desteklemediğini nasıl kontrol edeceğiniz ve bunları nasıl düzgün şekilde görüntüleyeceğiniz açıklanmaktadır.

Standart dinamik aralık ile yüksek dinamik aralık arasındaki farkın simülasyonunu gösteren grafik. Grafikte, bulutlu gökyüzünün bulunduğu bir manzara gösteriliyor. HDR'nin simüle edildiği sağ yarıda daha parlak vurgular, daha koyu gölgeler ve daha net renkler var.
Şekil 1. Standart dinamik aralık (SDR) ile yüksek dinamik aralıklı (HDR) resimler arasındaki farkın simülasyonu. Cihaz HDR'yi destekliyorsa görüntülerde daha koyu gölgeler ve daha parlak parlak alanlar olabilir.

Kazanç haritası olup olmadığını kontrol etme

Ultra HDR görüntüler bir kazanç haritası içerir. Kazanç haritası, resimdeki her bir pikselin artan parlaklığını belirlemek için kullanılır. Bir resmin Ultra HDR biçiminde olup olmadığını doğrulamak için resmi veya çekilebilir videoyu Bitmap biçimine dönüştürün ve kazanç haritasına sahip olup olmadığını kontrol etmek için Bitmap.hasGainMap() numaralı telefonu (Android 14'ten itibaren kullanılabilir) arayın.

Pencerenizi Ultra HDR'yi gösterecek şekilde yapılandırma

Ultra HDR resimleri tam dinamik aralıkla görüntülemek için pencerenin renk modunu ActivityInfo.COLOR_MODE_HDR olarak ayarlayın. Bunu, pencerenin setColorMode() yöntemini çağırarak yapın. (Bu API'ler Android 8'den itibaren kullanılabilir. Ancak cihaz Android 14 veya sonraki bir sürümü çalıştırmıyorsa resimler Ultra HDR kalitesinde görüntülenmez.)

Özet

Aşağıdaki kod tüm işlemin nasıl göründüğünü gösterir. Bu kod, bir görüntünün Bit Eşleme'ye yüklendiğini varsayar ve resmin kazanç haritasına sahip olup olmadığını kontrol eder. Bu durumda kod, pencerenin renk modunu COLOR_MODE_HDR olarak değiştirir. Resimde kazanç haritası yoksa kod, pencereyi varsayılan renk moduna geçirir.

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);

Ek kaynaklar

Ultra HDR görüntüler hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynakları inceleyin: