Ultra HDR resim biçimi, resimlerde ışığın yoğunluğuyla ilgili daha fazla bilgi depolanmasını sağlar. Bu sayede, daha ayrıntılı parlak alanlar ve gölgeler ile 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 şekilde gösterecek şekilde yapılandırmanız önemlidir. Öte yandan, uygulamanız Ultra HDR resimleri göstermiyorsa Ultra HDR ekranı etkinleştirmeyerek cihaz kaynaklarından tasarruf edebilirsiniz. Bu sayfada, grafiklerin Ultra HDR'yi destekleyip desteklemediğini nasıl kontrol edebileceğiniz ve bunları nasıl doğru şekilde görüntüleyebileceğiniz açıklanmaktadır.
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. Bir resmin Ultra HDR biçiminde olup olmadığını doğrulamak için resmi veya çizilebilir öğeyi Bitmap
olarak dönüştürün ve kazanç haritası olup olmadığını kontrol etmek için Bitmap.hasGainMap()
'i (Android 14'ten beri kullanılabilir) çağırı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 yapabilirsiniz. (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 resmin Bitmap'e yüklendiğini varsayar ve resmin kazanç haritasının olup olmadığını kontrol eder. Bu durumda 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.
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
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:
- Video: Yüksek kaliteli Android medya deneyimleri oluşturma
- Örnek uygulama: Ultra HDR görüntüleme
- Ultra HDR resim biçimi spesifikasyonu
- Video: Android geliştirici hikayesi: Instagram'ın Ultra HDR'yi erken benimsemesi, kullanıcı deneyimini sadece 3 ayda dönüştürüyor