Rotation de l'écran
Rien de plus désagéable dans un jeu que de voir celui-ci s'arrêter et reprendre n'importe quand, n'importe où, alors que vous n'êtes plus dans le feu de l'action !
C'est pourtant ce qui arrive pour le moment lorsque votre appareil fait une rotation de 90° ou, pour certains appareils, lorsque vous sortez le clavier (ce qui provoque aussi une rotation automatique de l'écran orienté dans le sens du clavier).
En effet, Android relance les activités (arrêt de l'activité puis relance en respectant le cycle de vie d'une activité) pour prendre en compte ce genre de modification. Il s'agit de la solution la plus simple, ainsi, l'activité aura les nouveaux paramètres et pourra initialiser le contenu de l'écran suivant le nouvel espace disponible sur l'écran.
Il existe différentes solutions pour traiter la rotationde l'écran dans une activité:
- Connaître l'orientation de l'écran
- Interdire la rotation (c'est radical !)
Interdiction par AndroidManifest
Interdiction par code
- Laisser Android gérer la rotation mais sauver l'état de l'activité (classique)
layout-land
Autres solution
Destruction de l'activité lors de la rotation
Les problèmes de cette solution
- Traiter personnellement la rotation
Indiquer à Android que l'activité prend en charge la rotation de l'écran
Prendre en compte le changement de configuration dans l'activité
Exemple de code
Il n'est pas impossible
qu'une rotation à 180° ne soit pas indiquée par l'appareil
(téléphone la tête en bas)