Menampilkan gambar Ultra HDR

Format gambar Ultra HDR memungkinkan gambar menyimpan lebih banyak informasi tentang intensitas cahaya, sehingga menghasilkan sorotan dan bayangan yang lebih detail, dan warna yang lebih intens. Android memberikan dukungan untuk gambar Ultra HDR mulai Android 14 (level API 34). Jika aplikasi Anda berjalan pada versi tersebut, penting untuk mengonfigurasi aplikasi agar menampilkan gambar ini dengan benar. Di sisi lain, jika aplikasi tidak menampilkan gambar Ultra HDR, Anda dapat menghemat resource perangkat dengan tidak mengaktifkan layar Ultra HDR. Halaman ini menjelaskan cara memeriksa apakah grafis mendukung Ultra HDR, dan cara menampilkannya dengan benar.

Grafik yang menunjukkan simulasi perbedaan antara rentang dinamis standar dan rentang dinamis tinggi. Gambar menampilkan lanskap dengan langit berawan. Bagian kanan, yang menyimulasikan HDR, memiliki highlight yang lebih terang, bayangan yang lebih gelap, dan warna yang lebih jelas.
Gambar 1. Simulasi perbedaan antara gambar rentang dinamis (SDR) standar dan rentang dinamis tinggi (HDR). Jika perangkat mendukung HDR, gambar dapat memiliki bayangan yang lebih gelap dan sorotan yang lebih cerah.

Memeriksa keberadaan peta keuntungan

Gambar Ultra HDR berisi peta perolehan. Peta perolehan digunakan untuk menentukan peningkatan kecerahan setiap piksel dalam gambar. Untuk memastikan apakah gambar dalam format Ultra HDR, konversikan gambar atau drawable ke Bitmap dan panggil Bitmap.hasGainMap() (tersedia mulai Android 14) untuk memeriksa apakah gambar memiliki peta keuntungan.

Mengonfigurasi jendela untuk menampilkan Ultra HDR

Untuk menampilkan gambar Ultra HDR dengan rentang dinamis penuh, setel mode warna jendela ke ActivityInfo.COLOR_MODE_HDR. Lakukan hal ini dengan memanggil metode setColorMode() jendela. (API ini tersedia mulai Android 8; tetapi, 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 gambar dimuat ke Bitmap, dan memeriksa apakah gambar memiliki peta penguatan. Jika ya, kode akan mengalihkan mode warna jendela ke COLOR_MODE_HDR. Jika gambar tidak memiliki peta keuntungan, 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: