Qualificateurs de ressources sur Surface Duo

Quand votre application est répartie sur un appareil double écran, vous constaterez peut-être que la disposition actuellement utilisée n’est pas parfaitement adaptée pour cette configuration. Par exemple, vous pouvez remarquer que du contenu est masqué par la charnière et envisager certains ajustements de la disposition pour que votre application se présente et se comporte mieux quand elle est utilisée sur un appareil double écran. Pour gérer ces ajustements, Android fournit des qualificateurs permettant de gérer plusieurs configurations. Ainsi, selon que votre application s’exécute sur un appareil équipé d’un petit écran, sur une tablette disposant d’un écran 10 pouces en mode paysage ou sur Surface Duo, vous pouvez utiliser des valeurs de qualificateur différentes pour vous aider à optimiser votre application pour des configurations d’appareil spécifiques.

Détection de Surface Duo

Pour les appareils Surface Duo, vous pouvez utiliser le qualificateur sw720dp-2754×1800 ; par exemple :

  • vvalues-sw720dp-2754×1800 : pour des valeurs de ressource, comme les fichiers strings.xml
  • layout-sw720dp-2754×1800 : pour la disposition des fichiers XML de disposition

Surface Duo prend les ressources qui s’y trouvent et les utilise. Si aucune ressource spécifique n’est disponible, Surface Duo applique les qualificateurs existants par ordre de priorité.

Mode de construction du qualificateur

Les dimensions de Surface Duo indiquent que l’appareil en mode double écran paysage a la plus petite largeur, à savoir 720 dp. Cette valeur ne change pas quand l’orientation de l’écran change. Elle reste constante, que nous soyons en mode double écran portrait ou double écran paysage. Cela est représenté sous la forme sw720dp dans le qualificateur.

La valeur 2754×1800 fournit une configuration plus spécifique. Étant donné que sw720dp peut être partagé avec de nombreuses tablettes disponibles sur le marché, la valeur 2754×1800 correspond à la largeur et à la hauteur minimales de la gamme Surface Duo, en pixels. La largeur totale du Surface Duo 2 est 2754 pixels. La hauteur du Surface Duo est de 1800 pixels. La combinaison de ces deux valeurs donne des dimensions minimales de 2754x1800 pixels qui correspondent toutes les deux lorsqu’elles sont utilisées comme qualificateurs de ressources.

Notes

Le codage en dur des ressources sur des valeurs spécifiques peut avoir des conséquences inattendues : si un nouvel appareil apparaît avec la même taille d’écran, il correspond également au qualificateur. Planifiez vos ressources en conséquence.

Largeur d’écran minimale dans le code

La largeur d’écran minimale peut également être vérifiée dans le code à l’aide de resources.configuration.smallestScreenWidthDp, qui est disponible dans un contexte d’interface utilisateur, comme celui d’une classe d’activité. Évitez d’utiliser la valeur d’un contexte autre que celui d’une interface utilisateur (par exemple, celui d’une application), et évitez de mettre en cache la valeur car celle-ci peut changer sur les appareils double écran ou si le multifenêtrage est activé et que l’application est démarrée ou déplacée vers une partie de l’écran plutôt que vers l’écran entier.

Ressources