Le format d'image Ultra HDR permet de stocker davantage d'informations dans les images. sur l'intensité de la lumière, ce qui génère des tons clairs et des ombres plus détaillés, et des couleurs plus intenses. Android prend en charge les images Ultra HDR dès avec Android 14 (niveau d'API 34). Si votre application s'exécute sur ces versions, important de configurer votre application pour afficher ces images correctement. De l'autre Si votre application n'affiche pas d'images Ultra HDR, vous pouvez enregistrer ressources en n'activant pas l'affichage Ultra HDR. Cette page explique comment vérifier les graphismes sont-ils compatibles avec l'Ultra HDR, et comment les afficher correctement ?
Vérifier la présence d'une carte de gain
Les images Ultra HDR contiennent une carte de gain. La carte de gain est
utilisée pour déterminer la luminosité
augmentée de chaque pixel dans l'image. Pour effectuer la validation
Si une image est au format Ultra HDR, convertissez l'image ou le drawable en
Bitmap
et appeler Bitmap.hasGainMap()
(disponible à partir d'Android 14) pour vérifier s'il dispose d'une carte de gain.
Configurer votre fenêtre pour afficher l'Ultra HDR
Pour afficher des images Ultra HDR avec toute la plage dynamique, définissez la couleur de la fenêtre
sur ActivityInfo.COLOR_MODE_HDR
. Pour ce faire, appelez la méthode
la méthode setColorMode()
de fenêtre. (Ces API sont
à partir d'Android 8. Toutefois, les images ne sont pas affichées en Ultra HDR
l'appareil est équipé d'Android 14 ou version ultérieure.)
Synthèse
Le code suivant montre à quoi ressemble l'ensemble du processus. Ce code suppose qu'une image
est chargé dans un bitmap et vérifie si l'image possède une carte de gain. Si c'est le cas, la
code bascule le mode couleur de la fenêtre sur COLOR_MODE_HDR
. Si
l'image ne comporte pas de carte de gain, le code fait passer la fenêtre à la valeur par défaut
mode couleur.
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);
Ressources supplémentaires
Pour en savoir plus sur les images Ultra HDR, consultez les ressources supplémentaires suivantes:
- Vidéo: Créer des contenus multimédias Android de haute qualité expériences
- Application exemple: Affichage en Ultra HDR
- Spécifications concernant le format d'image Ultra HDR
- Vidéo: Témoignage de développeur Android: l'adoption précoce de l'Ultra HDR par Instagram transforme l'expérience utilisateur en seulement trois mois