Les applications Android fonctionnant désormais sur une multitude d'appareils (téléphones, tablettes, appareils pliables, ordinateurs de bureau, voitures et téléviseurs, par exemple) et de modes de fenêtrage sur les grands écrans (comme l'écran partagé et le fenêtrage de bureau), les développeurs doivent créer des applications Android qui s'adaptent à toutes les tailles d'écran et de fenêtre, quelle que soit l'orientation de l'appareil. Les approches qui limitent l'orientation et le redimensionnement sont trop contraignantes dans le monde multi-appareils d'aujourd'hui.
Ignorer les restrictions d'orientation, de redimensionnement et de format
Pour les applications ciblant Android 17 (niveau d'API 37) ou une version ultérieure, les restrictions d'orientation, de redimensionnement et de format ne s'appliquent plus sur les écrans dont la plus petite largeur est supérieure à 600 dp. Les applications remplissent également toute la fenêtre d'affichage, quels que soient le format ou l'orientation préférés de l'utilisateur, et le format pillarbox n'est pas utilisé.
Android 17 supprime l'option de désactivation temporaire pour les développeurs concernant les restrictions d'orientation et de redimensionnement sur les appareils à grand écran, qui était disponible dans Android 16.
Cette modification introduit un nouveau comportement standard de la plate-forme. Android évolue vers un modèle où les applications doivent s'adapter à des orientations, tailles d'écran et formats différents. Les restrictions telles que l'orientation fixe ou la taille non modifiable limitent l'adaptabilité des applications. Rendez votre application adaptative pour offrir la meilleure expérience utilisateur possible.
Vous pouvez également tester ce comportement à l'aide du framework de compatibilité des applications et en activant l'indicateur de compatibilité UNIVERSAL_RESIZABLE_BY_DEFAULT.
Modifications destructives courantes
Ignorer les restrictions d'orientation, de redimensionnement et de format peut avoir un impact sur l'interface utilisateur de votre application sur certains appareils, en particulier sur les éléments conçus pour de petites mises en page verrouillées en mode portrait. Par exemple, les applications peuvent présenter des problèmes tels que des mises en page étirées, ou des animations et des composants apparaissant hors écran. Toute hypothèse concernant le format ou l'orientation peut entraîner des problèmes visuels dans votre application. Découvrez comment les éviter et améliorer le comportement adaptatif de votre application.
Sur les appareils pliables en mode paysage ou lors du calcul du format dans des scénarios tels que le mode multifenêtre, le fenêtrage du bureau ou les écrans connectés, il arrive souvent que l'aperçu de l'appareil photo apparaisse étiré, pivoté ou recadré. Ce problème se produit souvent sur les appareils pliables et à grand écran, car les applications supposent qu'il existe des relations fixes entre les fonctionnalités de l'appareil photo (comme le format et l'orientation du capteur) et les fonctionnalités de l'appareil (comme l'orientation de l'appareil et l'orientation naturelle). En savoir plus sur la gestion de l'aperçu de la caméra
Autoriser la rotation de l'appareil entraîne une recréation plus fréquente de l'activité, ce qui peut entraîner la perte de l'état de l'utilisateur s'il n'est pas correctement conservé. Pour savoir comment enregistrer correctement l'état de l'UI, consultez Enregistrer les états de l'UI.
Détails de mise en œuvre
Les attributs de fichier manifeste et les API d'exécution suivants sont ignorés sur les appareils à grand écran en mode plein écran et multifenêtre :
screenOrientationresizeableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
Les valeurs suivantes pour screenOrientation, setRequestedOrientation() et getRequestedOrientation() sont ignorées :
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
Concernant la possibilité de redimensionner l'écran, android:resizeableActivity="false",
android:minAspectRatio et android:maxAspectRatio n'ont aucun effet.
Exceptions
Les restrictions d'orientation, de redimensionnement et de format d'Android 17 ne s'appliquent pas dans les situations suivantes :
- Jeux (basés sur l'indicateur
android:appCategory) - Si les utilisateurs activent explicitement le comportement par défaut de l'application dans les paramètres de format de l'appareil
- Écrans dont la largeur minimale est inférieure à
sw600dp