Format gambar Ultra HDR memungkinkan gambar menyimpan lebih banyak informasi tentang intensitas cahaya, sehingga menghasilkan sorotan dan bayangan yang lebih mendetail, serta warna yang lebih intens. Android menyediakan dukungan untuk gambar Ultra HDR mulai dari Android 14 (level API 34). Jika aplikasi Anda berjalan pada versi tersebut, penting untuk mengonfigurasi aplikasi Anda agar menampilkan gambar ini dengan benar. Di sisi lain, jika aplikasi tidak menampilkan gambar Ultra HDR, Anda dapat menghemat resource perangkat dengan tidak mengaktifkan tampilan Ultra HDR. Halaman ini menjelaskan cara memeriksa apakah grafis mendukung Ultra HDR, dan cara menampilkannya dengan benar.
Memeriksa keberadaan peta penguatan
Gambar Ultra HDR berisi peta hasil. Peta GET digunakan untuk menentukan peningkatan kecerahan setiap piksel pada gambar. Untuk memverifikasi
apakah gambar dalam format Ultra HDR, konversikan gambar atau drawable menjadi
Bitmap
dan panggil Bitmap.hasGainMap()
(tersedia sejak Android 14) untuk memeriksa apakah gambar memiliki peta gain.
Konfigurasi jendela untuk menampilkan Ultra HDR
Untuk menampilkan gambar Ultra HDR dengan rentang dinamis penuh, tetapkan mode warna
jendela ke ActivityInfo.COLOR_MODE_HDR
. Lakukan hal ini dengan memanggil
metode setColorMode()
jendela. (API ini
tersedia dari Android 8; namun, gambar tidak ditampilkan dalam Ultra HDR kecuali
perangkat menjalankan Android 14 atau yang lebih tinggi.)
Penutup
Kode berikut menunjukkan tampilan seluruh proses. Kode ini mengasumsikan gambar
dimuat ke dalam Bitmap, dan memeriksa apakah gambar memiliki peta gain. Jika ya, kode akan mengalihkan mode warna jendela ke COLOR_MODE_HDR
. Jika
gambar tidak memiliki peta gain, kode akan mengalihkan jendela ke mode
warna default.
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);
Referensi lainnya
Untuk mempelajari gambar Ultra HDR lebih lanjut, lihat referensi tambahan berikut:
- Video: Membuat pengalaman media Android berkualitas tinggi
- Contoh aplikasi: Menampilkan Ultra HDR
- Spesifikasi format gambar Ultra HDR
- Video: Android Developer Story: Penerapan Ultra HDR awal Instagram mengubah UX hanya dalam 3 bulan