Vous êtes sur la page 1sur 5

Gestion de la rotation sous Android

Par Nazim Benbourahla - nbenbourahla


Date de publication : 5 dcembre 2011
Le but de ce tutoriel est d'expliquer comment grer la rotation de l'cran dans vos
applications Android.
Gestion de la rotation sous Android par Nazim Benbourahla - nbenbourahla
- 2 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les
droits d'auteur. Copyright 2011 Benbourahla Nazim. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://nbenbourahla.developpez.com/tutoriels/java/gestion-rotation-android/
1 - Philosophie de la rotation...................................................................................................................................... 3
2 - Cration des nouvelles vues................................................................................................................................. 3
3 - Tester sur l'mulateur.............................................................................................................................................3
4 - Sauvegarde de l'tat.............................................................................................................................................. 3
5 - Limitation................................................................................................................................................................ 3
6 - Surcharger la rotation............................................................................................................................................ 4
7 - Bloquer la vue........................................................................................................................................................4
8 - Best Practice - Grer les tablettes........................................................................................................................ 4
9 - Conclusion..............................................................................................................................................................4
10 - Remerciements.................................................................................................................................................... 5
11 - Liens..................................................................................................................................................................... 5
Gestion de la rotation sous Android par Nazim Benbourahla - nbenbourahla
- 3 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les
droits d'auteur. Copyright 2011 Benbourahla Nazim. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://nbenbourahla.developpez.com/tutoriels/java/gestion-rotation-android/
1 - Philosophie de la rotation
Lors d'une rotation de l'cran, Android supprimera et recrera toutes les activits en cours d'excution ou en pause.
Ce comportement est celui par dfaut ; vous pouvez adapter la rponse de vos activits aux changements
d'orientation.
Finalement, c'est aux dveloppeurs de vrifier et corriger l'affichage de votre application dans le mode portrait et
landscape.
2 - Cration des nouvelles vues
Pour crer vos nouvelles vues qui seront affiches en mode landscape, il suffit de crer un nouveau dossier dans
le dossier res : ce dossier se nommera layout-land.
Vous devez donc repenser votre interface pour que la vue en mode landscape soit agrable utiliser sans surcharger
l'cran.
3 - Tester sur l'mulateur
Pour simuler la rotation de l'cran sur l'mulateur, il faut utiliser le raccourci CTRL + F12.
4 - Sauvegarde de l'tat
Comme prcis plus haut, Android dtruit votre vue en cas de changement d'orientation pour construire la nouvelle
vue. Vous souhaiterez donc peut-tre sauvegarder des donnes avant le changement d'orientation, par exemple si
l'utilisateur a commenc saisir du texte.
Pour rsoudre ce problme, il suffit d'utiliser la mthode onSaveInstanceState().
Cette mthode est appele chaque fois que votre activit est dtruite.
Grce cette mthode vous pouvez sauvegarder les donnes que vous souhaitez dans un Bundle afin de pouvoir
rcuprer l'tat de votre activit.
Cette rcupration est possible car dans le onCreate, la mthode onRestoreInstanceState() est appele afin de
rcuprer l'tat de votre vue. Ainsi, dans cette mthode vous pouvez utiliser toutes les valeurs que vous avez stockes
dans la mthode prcdente.
5 - Limitation
La mthode onSaveInstanceState a ses limites : un Bundle ne permet qu'un stockage limit lorsque l'on peut avoir
besoin de stocker bien davantage.
On peut contourner ce problme en utilisant la mthode onRetainNonConfigurationInstance() qui vous permet de
renvoyer un objet que vous pouvez rcuprer grce la mthode getLastNonConfigurationInstance().
Gestion de la rotation sous Android par Nazim Benbourahla - nbenbourahla
- 4 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les
droits d'auteur. Copyright 2011 Benbourahla Nazim. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://nbenbourahla.developpez.com/tutoriels/java/gestion-rotation-android/
6 - Surcharger la rotation
Dans certains cas, il est indispensable de surcharger le comportement par dfaut de la rotation sur votre application.
Pour cela vous devez simplement :
utiliser l'attribut android:configChanges de l'lment activity dans le fichier AndroidManifest.xml pour citer
les modifications de configuration que vous voulez grer. Il peut prendre les valeurs suivantes :
dans votre activit, implmenter la mthode onConfigurationChanged() pour grer les configurations que
vous avez cites dans votre fichier AndroidManifest.xml.
7 - Bloquer la vue
Pour finir, vous pouvez bloquer votre vue dans un mode ou un autre. Cette mthode est dconseille par Google
car bloquer une vue en portrait rduit significativement l'exprience utilisateur. Cette rduction est d'autant plus
significative pour les tablettes puisque, pour celles-ci, la vue par dfaut est landscape et non portrait.
Pour utiliser cette manipulation, il suffit d'ajouter android:screenOrientation=portrait ou landscape. Cela permet
de verrouiller votre activit dans le sens souhait.
8 - Best Practice - Grer les tablettes
Si vous souhaitez grer la rotation dans tous les cas, afin que votre application s'affiche naturellement pour les
utilisateurs (de tablette ou de tlphone), vous pouvez utiliser le code suivant :
int x = AXIS_X;
int y = AXIS_Y;
case(Display.getRotation())
Surface.ROTATION_0: //Ici votre code
break;
Surface.ROTATION_90: x=AXIS_Y; y = AXIS_MINUS_X;
//Ici votre code
break;
Surface.ROTATION_180: y=AXIS_MINUS_Y;
//Ici votre code
break;
Surface.ROTATION_270: x=AXIS_MINUS_Y; y = AXIS_X;
//Ici votre code
break;
9 - Conclusion
Merci d'avoir lu ce tutoriel, en esprant qu'il vous ait facilit la comprhension de la gestion de la rotation de l'cran
dans vos applications.
Gestion de la rotation sous Android par Nazim Benbourahla - nbenbourahla
- 5 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les
droits d'auteur. Copyright 2011 Benbourahla Nazim. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://nbenbourahla.developpez.com/tutoriels/java/gestion-rotation-android/
10 - Remerciements
Je tiens remercier tout particulirement djibril qui a mis ce tutoriel au format Developpez.com.
Merci galement Kaera et jacques_jean d'avoir pris le temps de le relire et de le corriger.
11 - Liens
Tutoriel origine sur Tutos-Android

Vous aimerez peut-être aussi