Ultra HDR görüntü biçimi, görüntülerin ışık yoğunluğu hakkında daha fazla bilgi depolamasına olanak tanır. Bu sayede daha ayrıntılı parlak alanlar ve gölgeler ile daha yoğun renkler elde edilir. Android, Android 14 (API düzeyi 34) sürümünden itibaren Ultra HDR görüntüleri 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. Diğer yandan, uygulamanız Ultra HDR görüntüleri 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örüntüleyeceğiniz açıklanmaktadır.
Kazanç haritası olup olmadığını kontrol edin.
Ultra HDR resimler 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
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) çağırın.
Pencerenizi Ultra HDR gösterecek şekilde yapılandırma
Ultra HDR görüntüleri tam dinamik aralıkta göstermek 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 daha yeni bir sürüm yüklü değilse görüntüler 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 bit eşleme olarak yüklendiğini varsayar ve resimde kazanç haritası 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 resimler hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara bakın:
- 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 yalnızca 3 ayda dönüştürdü