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

Ultra HDR resim formatı, resimlerin ışık yoğunluğu hakkında daha fazla bilgi depolamasını sağlayarak daha ayrıntılı vurgular ve gölgeler ile daha yoğun renkler elde edilmesini sağlar. Android, Android 14 (API düzeyi 34) ile başlayarak Ultra HDR resimleri destekler. Uygulamanız bu sürümlerde çalışıyorsa bu resimleri düzgün şekilde gösterecek şekilde yapılandırmanız önemlidir. Öte yandan, uygulamanız Ultra HDR resimler göstermiyorsa 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östereceğiniz açıklanmaktadır.

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

Ultra HDR görüntülerde kazanç haritası bulunur. Kazanç haritası, görüntüdeki her 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 çizilebilir öğeyi Bitmap biçimine dönüştürün ve kazanç haritası olup olmadığını kontrol etmek için Bitmap.hasGainMap() (Android 14'ten itibaren kullanılabilir) yöntemini çağırın.

Pencerenizi Ultra HDR görüntüleyecek şekilde yapılandırma

Ultra HDR görüntüleri 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 yapabilirsiniz. (Bu API'ler Android 8'den itibaren kullanılabilir ancak cihazda Android 14 veya sonraki bir sürüm yüklü değilse resimler Ultra HDR olarak gösterilmez.)

Özet

Aşağıdaki kodda tüm sürecin nasıl göründüğü gösterilmektedir. Bu kod, bir resmin Bitmap'e yüklendiğini varsayar ve resimde kazanç haritası olup olmadığını kontrol eder. Eşleşiyorsa kod, pencerenin renk modunu COLOR_MODE_HDR olarak değiştirir. Görüntüde 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 resimler hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara göz atın: