El formato de imagen Ultra HDR permite que las imágenes almacenen más información sobre la intensidad de la luz, lo que da como resultado zonas brillantes y sombras más detalladas, y colores más intensos. A partir de ahora, Android admitirá las imágenes Ultra HDR con Android 14 (nivel de API 34). Si tu app se ejecuta en esas versiones, es importante configurar tu app para que muestre estas imágenes correctamente. Del otro Si la app no muestra imágenes en Ultra HDR, puedes guardarlas recursos si no habilitas la pantalla Ultra HDR. En esta página, se explica cómo verificar si los gráficos son compatibles con Ultra HDR y cómo verlos correctamente.
Comprueba la presencia de un mapa de ganancia
Las imágenes Ultra HDR contienen un mapa de ganancia. El mapa de ganancia
que se usa para determinar el aumento del brillo de cada píxel en la imagen. Para verificar
Si una imagen está en formato Ultra HDR, convierte la imagen o el elemento de diseño en un
Bitmap
y llamar a Bitmap.hasGainMap()
(disponible a partir de Android 14) para verificar si tiene un mapa de ganancia.
Configura tu ventana para que muestre Ultra HDR
Para mostrar imágenes Ultra HDR con el rango dinámico completo, configura el color de la ventana
el modo en ActivityInfo.COLOR_MODE_HDR
. Para ello, llama al
método setColorMode()
de la ventana. (Estas APIs son
disponible a partir de Android 8; Sin embargo, las imágenes no se muestran en Ultra HDR, a menos que
el dispositivo ejecute Android 14 o una versión posterior).
Resumen
En el siguiente código, se muestra cómo se ve todo el proceso. Este código supone que una imagen
se carga en un mapa de bits y comprueba si la imagen tiene un mapa de ganancia. Si es así, el
código cambia el modo de color de la ventana a COLOR_MODE_HDR
. Si
la imagen no tiene un mapa de ganancia, el código cambia la ventana al valor predeterminado
modo de color.
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);
Recursos adicionales
Para obtener más información sobre las imágenes Ultra HDR, consulta los siguientes recursos adicionales:
- Video: Cómo crear contenido multimedia de alta calidad en Android experiencias
- App de ejemplo: Cómo mostrar Ultra HDR
- Especificación del formato de imagen Ultra HDR
- Video: Historias de desarrolladores de Android: La adopción temprana de Ultra HDR en Instagram transforma la UX en solo 3 meses