SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
M.Houssem LAHIANI 
Cours de programmation sous Android 
Responsable de matière : Monsieur Houssem Lahiani. 
Chapitre 2 : Les interfaces graphiques sous android 
Plan du chapitre 
Chapitre 2 : Les interfaces graphiques sous Android ......................................................................................................... 2 
I. LinearLayout ................................................................................................................................................................ 2 
1. Orientation du Layout ............................................................................................................................................. 2 
2. Taille des éléments .................................................................................................................................................. 2 
II. RelativeLayout ........................................................................................................................................................ 3 
1. Positionnement relatif au conteneur...................................................................................................................... 3 
2. Position relative aux autres éléments .................................................................................................................... 3 
III. AbsoluteLayout ........................................................................................................................................................ 4 
IV. TableLayout ............................................................................................................................................................. 4
M.Houssem LAHIANI 
Chapitre 2 : Les interfaces graphiques sous Android 
Les interfaces sont définies via des fichiers XML. Ce format permet d'avoir un éditeur graphique d'interface et d'avoir une vraie séparation entre votre code Java (comportement) et votre interface. Tout ce qui est fait en XML pourrait également être fait en Java, cependant le code serait beaucoup plus verbeux et complexe à maintenir. Les interfaces développées en Java sont principalement utilisé comme le visuel d'un écran doit être généré dynamiquement en fonction des données (un formulaire dynamique par exemple). 
Il existe plusieurs types de layouts parmi lesquels : 
I. LinearLayout 
Ce layout permet de placer les composants « les uns après les autres ». Il faut ensuite savoir de quelle manière (verticalement ou horizontalement). 
Plusieurs propriètés sont disponibles pour permettre aux développeurs de personnaliser ce Layout. 
1. Orientation du Layout 
C’est la première chose que vous précisez quand vous créez votre LinearLayout (android:orientation). Cette option spécifie la façon dont seront alignés les éléments contenus dans ce Layout. Deux options sont disponibles : 
 Verticale : Oriente les éléments sur une ligne verticale. 
 Horizontale : Oriente les éléments sur une ligne horizontale. 
2. Taille des éléments 
Le LinearLayout ainsi que tous les widgets qui le composent doivent fournir une taille (hauteur et largeur). Donc ils doivent définir les deux propriétés suivantes : 
 android:layout_width 
 android:layout_height 
Ces deux propriétés peuvent prendre 3 types de valeur : 
 Une taille fixe : par exemple 50px (pixels). Donc quel que soit la taille de l’écran, l’élément occupera exactement 50px. 
 fill_parent : Dans ce cas on demande au composant d’occuper tout l’espace disponible chez son conteneur parent (après le placement des autres widgets). 
 wrap_content : Lorsqu'un layout a cette propriété, sa taille dépend directement de la taille des composants qu'il contient. Pour demander au Widget d’occuper une taille naturelle (la taille de son contenu pour le texte par exemple). S’il est trop gros par rapport à la taille disponible. Android s’occupera par exemple de couper le texte s’il n’y a plus de place.
M.Houssem LAHIANI 
II. RelativeLayout 
Le principe du RelativeLayout est de placer les éléments selon d’autres éléments du conteneur. Voici les différents moyens qui sont à votre disposition pour le placement des éléments dans le cas d’un RelativeLayout : 
1. Positionnement relatif au conteneur 
Dans cette relation, vous pouvez lier un élément à son conteneur : 
 android:layout_alignParentTop (true / false) : Cette option permet de préciser si le haut de l’élément doit être aligné avec celui de son conteneur. 
 Même principe pour : android:layout_alignParentBottom, android:layout_alignParentLeft et android:layout_alignParentRight. 
 android:layout_centerHorizontal : Indique si l’élément doit être centré horizontalement dans son conteneur. 
 Même principe pour : android:layout_centerVertical. 
 android:layout_centerInParent : Vous permet d’indiquer que l’élément doit être centré horizontalement et verticalement dans le conteneur. 
2. Position relative aux autres éléments 
Afin de pouvoir référencer le positionnement d’un élément par rapport à un autre, vous disposez d’un moyen simple et efficace, il s’agit des identificateurs (ID). 
Donc voilà comment vous pouvez utiliser un ID : 
 A la déclaration d’un élément : android:id= “@+id/idElem” 
 A l’utilisation : @id/idElem 
Maintenant que les bases sont posées, voici les différentes options disponibles : 
 android:layout_above : Indique que l’élément sera placé au-dessus de celui indiqué par son id. 
 android:layout_below : Indique que l’élément sera placé en dessous de celui indiqué par son id. 
 android:layout_toLeftOf : Indique que l’élément sera placé à gauche de celui indiqué par son id. 
 android:layout_toRightOf : Indique que l’élément sera placé à droite de celui indiqué par son id. 
 android:layout_alignTop : Indique que le haut de notre élément est aligné avec le haut de l’élément indiqué. 
 android:layout_alignBottom : Indique que le bas de notre élément est aligné avec le bas de l’élément indiqué. 
 android:layout_alignLeft : Indique que le côté gauche de notre élément est aligné avec le côté gauche de l’élément indiqué. 
 android:layout_alignRight : Indique que le côté droit de notre élément est aligné avec le côté droit de l’élément indiqué. 
 android:layout_alignBaseLine : Indique que les lignes de base des 2 éléments sont alignées.
M.Houssem LAHIANI 
III. AbsoluteLayout 
Android fournit également le conteneur AbsoluteLayout, dont le contenu est disposé en fonction de coordonnées spécifiques – on lui indique où placer un fils en précisant ses coordonnées X, Y, et Android le positionne à cet endroit sans poser de question. Ceci a l’avantage de fournir un positionnement précis; en revanche, cela signifie également que les vues n’auront un aspect correct que sur des écrans d’une certaine dimension, à moins d’écrire beaucoup de code pour ajuster les coordonnées en fonction de la taille de l’écran. 
Les écrans Android pouvant avoir n’importe quelle taille et ces tailles évoluent continuellement, l’utilisation d’AbsoluteLayout risque de devenir assez problématique. 
IV. TableLayout 
Dernier layout de base, il permet d'organiser les éléments en tableau, comme en HTML, mais sans les bordures. Voici un exemple d'utilisation de ce layout : 
<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/tableLayout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 
<!-- 2 columns --> 
<TableRow 
android:id="@+id/tableRow1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:padding="5dip" > 
<TextView 
android:id="@+id/textView1" 
android:text="Column 1" 
android:textAppearance="?android:attr/textAppearanceLarge" /> 
<Button 
android:id="@+id/button1" 
android:text="Column 2" /> 
</TableRow> 
<!-- edittext span 2 column --> 
<TableRow 
android:id="@+id/tableRow2" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:padding="5dip" > 
<EditText 
android:id="@+id/editText1" 
android:layout_span="2" 
android:text="Column 1 &amp; 2" /> 
</TableRow> 
</TableLayout>
M.Houssem LAHIANI

Contenu connexe

Tendances

P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques androidLilia Sfaxi
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Anas Riahi
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Ben Abdelwahed Slim
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Ayed CHOKRI
 
Rapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesRapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesHosni Mansour
 
Presentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NETPresentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NETMeher Zayani
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5Alphorm
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 

Tendances (20)

Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
 
UML
UMLUML
UML
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
 
Rapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesRapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humaines
 
Presentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NETPresentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NET
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 

En vedette

Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidHoussem Lahiani
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à AndroidYoann Gotthilf
 
Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)G²FOSS ENIT
 
Les vues (views) sous android
Les vues (views) sous androidLes vues (views) sous android
Les vues (views) sous androidHoussem Lahiani
 
Sensors Expo 2013: Condition Based Maintenance, Evigia Systems
Sensors Expo 2013: Condition Based Maintenance, Evigia SystemsSensors Expo 2013: Condition Based Maintenance, Evigia Systems
Sensors Expo 2013: Condition Based Maintenance, Evigia SystemsEvigia
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutantsAmira Hakim
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introductionToxicode
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des appsNoé Breiss
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)TECOS
 
Food and Beverage solution map New
Food and Beverage solution map NewFood and Beverage solution map New
Food and Beverage solution map NewIFS
 
SAP BASED PLANT MAINTENANCE
SAP BASED PLANT MAINTENANCESAP BASED PLANT MAINTENANCE
SAP BASED PLANT MAINTENANCEPANKAJ TIKEKAR
 
IFS Metrix Service Management: An Overview
IFS Metrix Service Management: An OverviewIFS Metrix Service Management: An Overview
IFS Metrix Service Management: An OverviewIFS
 
Mobility: The business case
Mobility: The business caseMobility: The business case
Mobility: The business caseIFS
 
Service & assets news and solutions
Service & assets news and solutionsService & assets news and solutions
Service & assets news and solutionsIFS
 

En vedette (20)

Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à Android
 
Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)
 
Les vues (views) sous android
Les vues (views) sous androidLes vues (views) sous android
Les vues (views) sous android
 
Android wear
Android wearAndroid wear
Android wear
 
Sensors Expo 2013: Condition Based Maintenance, Evigia Systems
Sensors Expo 2013: Condition Based Maintenance, Evigia SystemsSensors Expo 2013: Condition Based Maintenance, Evigia Systems
Sensors Expo 2013: Condition Based Maintenance, Evigia Systems
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutants
 
Cours 1 Android
Cours 1 AndroidCours 1 Android
Cours 1 Android
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
Android
AndroidAndroid
Android
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des apps
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)
 
Food and Beverage solution map New
Food and Beverage solution map NewFood and Beverage solution map New
Food and Beverage solution map New
 
SAP BASED PLANT MAINTENANCE
SAP BASED PLANT MAINTENANCESAP BASED PLANT MAINTENANCE
SAP BASED PLANT MAINTENANCE
 
SAP CBM
SAP CBMSAP CBM
SAP CBM
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
IFS Metrix Service Management: An Overview
IFS Metrix Service Management: An OverviewIFS Metrix Service Management: An Overview
IFS Metrix Service Management: An Overview
 
Mobility: The business case
Mobility: The business caseMobility: The business case
Mobility: The business case
 
Service & assets news and solutions
Service & assets news and solutionsService & assets news and solutions
Service & assets news and solutions
 

Similaire à Les interface graphiques sous android

chapitre-7-listviews.pdf
chapitre-7-listviews.pdfchapitre-7-listviews.pdf
chapitre-7-listviews.pdfolfaharrabi2
 
Sociallymap - Qualitative automation tool
Sociallymap - Qualitative automation toolSociallymap - Qualitative automation tool
Sociallymap - Qualitative automation toolFlorent Hernandez
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdfRihabBENLAMINE
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Saber LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Création d’applications et découverte d’Android
Création d’applications et découverte d’AndroidCréation d’applications et découverte d’Android
Création d’applications et découverte d’AndroidENSAM Casablanca
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsLilia Sfaxi
 
Flutter and ML Kit For Firebase
Flutter and ML Kit For FirebaseFlutter and ML Kit For Firebase
Flutter and ML Kit For FirebaseHamidou Bah
 

Similaire à Les interface graphiques sous android (20)

Gestion des ui
Gestion des uiGestion des ui
Gestion des ui
 
2-android.pdf
2-android.pdf2-android.pdf
2-android.pdf
 
Les Layouts XML
Les Layouts XMLLes Layouts XML
Les Layouts XML
 
Android201710 avrilcours3
Android201710 avrilcours3Android201710 avrilcours3
Android201710 avrilcours3
 
chapitre-7-listviews.pdf
chapitre-7-listviews.pdfchapitre-7-listviews.pdf
chapitre-7-listviews.pdf
 
TP_2.pdf
TP_2.pdfTP_2.pdf
TP_2.pdf
 
Sociallymap - Qualitative automation tool
Sociallymap - Qualitative automation toolSociallymap - Qualitative automation tool
Sociallymap - Qualitative automation tool
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
Android2017 cours2
Android2017 cours2Android2017 cours2
Android2017 cours2
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdf
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 
test
testtest
test
 
Tutorial android
Tutorial androidTutorial android
Tutorial android
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Création d’applications et découverte d’Android
Création d’applications et découverte d’AndroidCréation d’applications et découverte d’Android
Création d’applications et découverte d’Android
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Flutter and ML Kit For Firebase
Flutter and ML Kit For FirebaseFlutter and ML Kit For Firebase
Flutter and ML Kit For Firebase
 

Les interface graphiques sous android

  • 1. M.Houssem LAHIANI Cours de programmation sous Android Responsable de matière : Monsieur Houssem Lahiani. Chapitre 2 : Les interfaces graphiques sous android Plan du chapitre Chapitre 2 : Les interfaces graphiques sous Android ......................................................................................................... 2 I. LinearLayout ................................................................................................................................................................ 2 1. Orientation du Layout ............................................................................................................................................. 2 2. Taille des éléments .................................................................................................................................................. 2 II. RelativeLayout ........................................................................................................................................................ 3 1. Positionnement relatif au conteneur...................................................................................................................... 3 2. Position relative aux autres éléments .................................................................................................................... 3 III. AbsoluteLayout ........................................................................................................................................................ 4 IV. TableLayout ............................................................................................................................................................. 4
  • 2. M.Houssem LAHIANI Chapitre 2 : Les interfaces graphiques sous Android Les interfaces sont définies via des fichiers XML. Ce format permet d'avoir un éditeur graphique d'interface et d'avoir une vraie séparation entre votre code Java (comportement) et votre interface. Tout ce qui est fait en XML pourrait également être fait en Java, cependant le code serait beaucoup plus verbeux et complexe à maintenir. Les interfaces développées en Java sont principalement utilisé comme le visuel d'un écran doit être généré dynamiquement en fonction des données (un formulaire dynamique par exemple). Il existe plusieurs types de layouts parmi lesquels : I. LinearLayout Ce layout permet de placer les composants « les uns après les autres ». Il faut ensuite savoir de quelle manière (verticalement ou horizontalement). Plusieurs propriètés sont disponibles pour permettre aux développeurs de personnaliser ce Layout. 1. Orientation du Layout C’est la première chose que vous précisez quand vous créez votre LinearLayout (android:orientation). Cette option spécifie la façon dont seront alignés les éléments contenus dans ce Layout. Deux options sont disponibles :  Verticale : Oriente les éléments sur une ligne verticale.  Horizontale : Oriente les éléments sur une ligne horizontale. 2. Taille des éléments Le LinearLayout ainsi que tous les widgets qui le composent doivent fournir une taille (hauteur et largeur). Donc ils doivent définir les deux propriétés suivantes :  android:layout_width  android:layout_height Ces deux propriétés peuvent prendre 3 types de valeur :  Une taille fixe : par exemple 50px (pixels). Donc quel que soit la taille de l’écran, l’élément occupera exactement 50px.  fill_parent : Dans ce cas on demande au composant d’occuper tout l’espace disponible chez son conteneur parent (après le placement des autres widgets).  wrap_content : Lorsqu'un layout a cette propriété, sa taille dépend directement de la taille des composants qu'il contient. Pour demander au Widget d’occuper une taille naturelle (la taille de son contenu pour le texte par exemple). S’il est trop gros par rapport à la taille disponible. Android s’occupera par exemple de couper le texte s’il n’y a plus de place.
  • 3. M.Houssem LAHIANI II. RelativeLayout Le principe du RelativeLayout est de placer les éléments selon d’autres éléments du conteneur. Voici les différents moyens qui sont à votre disposition pour le placement des éléments dans le cas d’un RelativeLayout : 1. Positionnement relatif au conteneur Dans cette relation, vous pouvez lier un élément à son conteneur :  android:layout_alignParentTop (true / false) : Cette option permet de préciser si le haut de l’élément doit être aligné avec celui de son conteneur.  Même principe pour : android:layout_alignParentBottom, android:layout_alignParentLeft et android:layout_alignParentRight.  android:layout_centerHorizontal : Indique si l’élément doit être centré horizontalement dans son conteneur.  Même principe pour : android:layout_centerVertical.  android:layout_centerInParent : Vous permet d’indiquer que l’élément doit être centré horizontalement et verticalement dans le conteneur. 2. Position relative aux autres éléments Afin de pouvoir référencer le positionnement d’un élément par rapport à un autre, vous disposez d’un moyen simple et efficace, il s’agit des identificateurs (ID). Donc voilà comment vous pouvez utiliser un ID :  A la déclaration d’un élément : android:id= “@+id/idElem”  A l’utilisation : @id/idElem Maintenant que les bases sont posées, voici les différentes options disponibles :  android:layout_above : Indique que l’élément sera placé au-dessus de celui indiqué par son id.  android:layout_below : Indique que l’élément sera placé en dessous de celui indiqué par son id.  android:layout_toLeftOf : Indique que l’élément sera placé à gauche de celui indiqué par son id.  android:layout_toRightOf : Indique que l’élément sera placé à droite de celui indiqué par son id.  android:layout_alignTop : Indique que le haut de notre élément est aligné avec le haut de l’élément indiqué.  android:layout_alignBottom : Indique que le bas de notre élément est aligné avec le bas de l’élément indiqué.  android:layout_alignLeft : Indique que le côté gauche de notre élément est aligné avec le côté gauche de l’élément indiqué.  android:layout_alignRight : Indique que le côté droit de notre élément est aligné avec le côté droit de l’élément indiqué.  android:layout_alignBaseLine : Indique que les lignes de base des 2 éléments sont alignées.
  • 4. M.Houssem LAHIANI III. AbsoluteLayout Android fournit également le conteneur AbsoluteLayout, dont le contenu est disposé en fonction de coordonnées spécifiques – on lui indique où placer un fils en précisant ses coordonnées X, Y, et Android le positionne à cet endroit sans poser de question. Ceci a l’avantage de fournir un positionnement précis; en revanche, cela signifie également que les vues n’auront un aspect correct que sur des écrans d’une certaine dimension, à moins d’écrire beaucoup de code pour ajuster les coordonnées en fonction de la taille de l’écran. Les écrans Android pouvant avoir n’importe quelle taille et ces tailles évoluent continuellement, l’utilisation d’AbsoluteLayout risque de devenir assez problématique. IV. TableLayout Dernier layout de base, il permet d'organiser les éléments en tableau, comme en HTML, mais sans les bordures. Voici un exemple d'utilisation de ce layout : <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 2 columns --> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dip" > <TextView android:id="@+id/textView1" android:text="Column 1" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button1" android:text="Column 2" /> </TableRow> <!-- edittext span 2 column --> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dip" > <EditText android:id="@+id/editText1" android:layout_span="2" android:text="Column 1 &amp; 2" /> </TableRow> </TableLayout>