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

Ultra HDR resim biçimi, resimlerin daha fazla bilgi depolamasına olanak tanır. ışık yoğunluğu hakkında daha ayrıntılı bilgi verir. ve daha yoğun renkler kullanabilirsiniz. Android, şu tarihten itibaren Ultra HDR görüntüler için destek sağlar: . Uygulamanız bu sürümlerde çalışıyorsa uygulamanızı bu resimleri düzgün görüntüleyecek şekilde yapılandırmak önemlidir. Diğer Uygulamanızda Ultra HDR resimler gösterilmiyorsa cihazınızı kaydedebilirsiniz fazla kaynak ayırmaya çalışın. Bu sayfada, değişiklik yapmadan önce ve grafiklerin Ultra HDR'yi destekleyip desteklemediğini ve nasıl düzgün şekilde görüntülenebileceğini öğrenin.

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

Ultra HDR görüntüler bir kazanç haritası içerir. Kazanç haritası resimdeki her pikselin artan parlaklığını belirlemek için kullanılır. Doğrulamak için Resim Ultra HDR biçimindeyse resmi veya çekilebilir videoyu Bitmap ve Bitmap.hasGainMap() numaralı telefonu arayın (Android 14'ten itibaren kullanılabilir).

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

Ultra HDR resimleri tam dinamik aralıkla görüntülemek için pencerenin rengini ayarlayın modu ActivityInfo.COLOR_MODE_HDR olarak değiştirin. Bunu, penceresinin setColorMode() yöntemini seçin. (Bu API'ler Android 8'den itibaren mevcuttur; ancak resimler Ultra HDR olarak gösterilmez. Cihazda Android 14 veya sonraki bir sürüm yüklüyse.)

Özet

Aşağıdaki kod tüm işlemin nasıl göründüğünü gösterir. Bu kodda, resim olarak ve resmin kazanç haritasına sahip olup olmadığını kontrol eder. Çalışıyorsa kodu, pencerenin renk modunu COLOR_MODE_HDR olarak değiştirir. Eğer resmin kazanç haritası yoksa kod, pencereyi varsayılan renk modu.

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: