Format gambar Ultra HDR memungkinkan gambar menyimpan lebih banyak informasi tentang intensitas cahaya, yang menghasilkan gambaran dan bayangan yang lebih detail, dan warna yang lebih intens. Android menyediakan dukungan untuk memulai gambar Ultra HDR dengan 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 Anda tidak menampilkan gambar Ultra HDR, Anda dapat menyimpan dengan tidak mengaktifkan layar Ultra HDR. Halaman ini menjelaskan cara memeriksa apakah grafik mendukung Ultra HDR, dan cara menampilkannya dengan benar.
Memeriksa keberadaan get map
Gambar Ultra HDR berisi peta hasil. Output peta adalah
digunakan untuk menentukan peningkatan kecerahan
setiap piksel pada gambar. Untuk memverifikasi
jika gambar dalam format Ultra HDR, konversikan gambar atau drawable menjadi
Bitmap
dan panggil Bitmap.hasGainMap()
(tersedia mulai Android 14) untuk memeriksa apakah peta tersebut memiliki peta amplifikasi.
Konfigurasi jendela untuk menampilkan Ultra HDR
Untuk menampilkan gambar Ultra HDR dengan rentang dinamis penuh, setel warna jendela
ke ActivityInfo.COLOR_MODE_HDR
. Lakukan hal ini dengan memanggil
metode setColorMode()
jendela. (API tersebut
tersedia mulai Android 8; namun, gambar tidak ditampilkan dalam Ultra HDR kecuali
perangkat menjalankan Android 14 atau yang lebih baru).
Penutup
Kode berikut menunjukkan tampilan keseluruhan proses. Kode ini mengasumsikan bahwa
dimuat ke dalam Bitmap, dan memeriksa apakah gambar memiliki peta amplifikasi. Jika ya,
kode akan mengalihkan mode warna jendela ke COLOR_MODE_HDR
. Jika
gambar tidak memiliki peta {i>get<i}, kode akan mengalihkan jendela ke
mode warna.
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 media Android berkualitas tinggi
- Aplikasi contoh: Menampilkan Ultra HDR
- Spesifikasi format gambar Ultra HDR
- Video: Kisah Developer Android: Adopsi awal Ultra HDR di Instagram yang mengubah UX hanya dalam 3 bulan