You are on page 1of 35

Pollier Christopher

Travail de Semestre

TIN-E2A

Apprentissage du langage java et dveloppement dapplication Android


Partie 2

Pollier Christopher

Travail de Semestre

TIN-E2A

Table des matires:

1. Table des matires: ........................................................................................................................... 2 2. Introduction ...................................................................................................................................... 4 2.1. SDK Android .............................................................................................................................. 5 2.1.1.Outils du SDK en dtail ...................................................................................................... 6 2.2. Eclipse HELIOS: .......................................................................................................................... 8 2.2.1.ADT Plugin Eclipse: ............................................................................................................ 8 2.2.2.JDK: .................................................................................................................................... 9 2.2.3.Framework des mthodes de saisie .................................................................................. 9 3. Installation ........................................................................................................................................ 9 3.1. Installation du JDK:.................................................................................................................... 9 3.2. Installation du SDK Android: ................................................................................................... 10 3.3. Installation du logiciel Eclipse Helios: ..................................................................................... 11 3.4. Installation du plugin ADT: ...................................................................................................... 12 4. Cration dun nouveau Projet......................................................................................................... 14 4.1. Cration dun mulateur ......................................................................................................... 15 4.2. Arborescence dun projet ....................................................................................................... 17 4.3. Ressources .............................................................................................................................. 18 4.4. Manifeste Android .................................................................................................................. 19 4.4.1.Fentre Eclipse de lAndroid Manifeste .......................................................................... 19 4.4.2.Exemple Code Manifest.xml: .......................................................................................... 20 4.4.3.Fentre Permission Manifeste: ....................................................................................... 20 5. Espace Dveloppeur ....................................................................................................................... 22 5.1. Contenu dun programme Android......................................................................................... 22 5.1.1.Les activits: .................................................................................................................... 22 5.1.2.Les fournisseurs de contenus: ......................................................................................... 22 5.1.3.Les services:..................................................................................................................... 22 5.1.4.Les intentions (Intents): .................................................................................................. 22 5.2. Classe Intent:........................................................................................................................... 22 5.2.1.Schma Intents et Filtres:................................................................................................ 23 5.2.2.Objets Intents .................................................................................................................. 24

Pollier Christopher

Travail de Semestre

TIN-E2A

5.2.3.Ouverture dune autre classe via Intent: ........................................................................ 25 5.3. Classe View.............................................................................................................................. 25 5.3.1.Dfinition XML:................................................................................................................ 26 5.4. Utilisation de Widgets: ............................................................................................................ 26 5.4.1.Atteindre un widget cr dans un fichier XML ............................................................... 28 5.4.2.Listener ............................................................................................................................ 28 5.4.3.Animations ...................................................................................................................... 29 6. Interface dune application ............................................................................................................. 30 6.1. Conteneurs .............................................................................................................................. 31 6.2. Exemple dInterface: ............................................................................................................... 32 6.2.1.Code relatif lexemple dinterface: ............................................................................... 33 6.3. Internationalisation dune application.................................................................................... 34 6.3.1.Exemples: ...................................................................................................................... 34 7. Conclusion:...................................................................................................................................... 35

Pollier Christopher

Travail de Semestre

TIN-E2A

Introduction

Grace cette partie numro deux, vous apprendrez les bases du dveloppement dapplication Android. Nous commencerons, tout dabord par le tlchargement et linstallation des outils qui nous aiderons dvelopper une application. Ensuite, nous aborderons aussi la classe View, les widgets, les Intents et la cration dinterface. Nous finirons sur linternationalisation dune application pour la rendre comprhensible par la majorit des utilisateurs de Smartphone Android. Bonne lecture !

Pollier Christopher Outils de dveloppement

Travail de Semestre

TIN-E2A

SDK Android
Google nous fournit leSDK (Software Development Toolkit) car exploiter une nouvelle plateforme nest pas chose aise. Ce SDK est un ensemble doutils qui permet au dveloppeur de crer des applications. Le Sdk est compos de plusieurs lments: Des API (interface de programmation) Une API cest un ensemble de classes regroupant des fonctions mises disposition des dveloppeurs. Dans la majorit des cas les API effectuent des traitements de bas niveau et proposent au dveloppeur une interface de plus haut niveau pour lui simplifier lutilisation de fonctionnalits. Par exemple, une API graphique permet dafficher des lments graphiques tels que des boutons, textbox, etc, sans avoir grer le priphrique dans son intgralit.

Des exemples de code De la documentation Des outils: DDMS: Cest un outil dassistance technique Mksdcard : Sert crer des cartes mmoires logicielles utilisables avec lmulateur.

Hierarchyviewer: Visualisation de la hirarchie du layout. sqlite3 : Permet daccder aux fichiers de donne au format SQLite.

Un mulateur L'mulateur est autonome et peut tre excut dans le but de donner aux utilisateurs et aux dveloppeurs la possibilit d'interagir avec le systme d'exploitation Android disponible sur tlphones.

Pollier Christopher

Travail de Semestre

TIN-E2A

Outils du SDK en dtail


DDMS Loutil appel DDMS(Dalvic Debug Monitor Service) est un vrai couteau suisse qui nous permet par exemple de parcourir les fichier journaux (Log), de modifier la position GPS fournie par lmulateur, de simuler des appels ou la rception de messages et de parcourir le contenu de la mmoire interne de lmulateur pour pouvoir y placer ou extraire des fichiers. Le module ADT nous permet daccder au DDMS directement depuis clipse. Nous pouvons aussi faire ce que fait le DDMS depuis clipse (avec une belle interface) via un Shell et Telnet par ligne de commande. En voici un exemple cidessous: 1. Cration dun fichier .bat avec ce code: cd C:\Android\android-sdk_r06-windows\android-sdk-windows\tools\ cmd pause cls

2. On lui dit de se connecter en Telnet notre mulateur: telnet localhost 5554 1 Ce message apparat: Android Console: type help for a list of commands OK 3. Pour simuler un appel, on tape la commande: gsm call 1208 2 => Enter 4. Pour simuler la rception dun sms: sms send 1208 hello 3 => Enter => Enter

1 2

5554 : le numro local de lmulateur, affich en haut de la fentre de lmulateur. 1208 : cest le numro qui nous appelle. 3 hello : texte du message reu.

Pollier Christopher

Travail de Semestre

TIN-E2A

Debug: Le module ADT permet aussi le dbogage de lapplication depuis clipse. Si on veut lancer un dbogage, il faut lancer lapplication en mode Debug et si ce nest pas fait automatiquement, aller sur la page Debug. Pour dboguer le code on utilise des Breakpoints (points darrt) comme avec tout autre logiciel de programmation. Cela nous permet dexcuter lapplication en mode pas--pas, afin de suivre prcisment le cheminement de lexcution de lapplication. Touche utiliser pour le mode pas--pas: F5: excution du mode pas--pas en entrant dans les mthodes appeles dans le code. excution pas--pas sans les mthodes excute dans le code. excution pas--pas en sortant de la mthode actuelle. continuer lexcution en sortant du mode pas--pas.

F6: F7: F8:

Hierarchyviewer Cet outil permet de visualiser une hirarchie. Conu pour nous aider consulter nos Layouts tels quils sont vus par une activit en cours dexcution dans lmulateur.

Emulateur Les personnes qui ne possdent pas de Smartphone ont disposition un mulateur fournis par le SDK Android. Celui-ci mule diffrents priphriques disponibles sur les vrais tlphones (par exemple un trackball, une batterie, lacclromtre) et permet dexcuter le systme Android et de pouvoir dployer et excuter lapplication que nous dveloppons. Voici quelques raccourcis clavier qui pourraient nous servir: L'mulateur utilise un certain nombre de raccourcis clavier Les flches curseur: contrlent le pav/joystick du ESC: quivaut la touche BACK du Home: quivaut la touche HOME du F2: quivaut la touche MENU du F3: quivaut la touche verte Appeler du F4: quivaut la touche rouge Raccrocher du F5: quivaut la touche Search du F7: quivaut la touche Power du CTRL+F3: active la CTRL+F5: augmente le connaitre: tlphone tlphone tlphone tlphone tlphone tlphone tlphone tlphone camra volume

Pollier Christopher

Travail de Semestre

TIN-E2A

CTRL+F6: F8: Alt+Entre: CTRL+F12:

diminue le active ou dsactive la simulation du rseau bascule en plein bascule du mode portrait en mode paysage et inversement.

volume cellulaire cran.

Eclipse HELIOS:
Le logiciel ECLIPSE est un environnement intgr de dveloppement (IDE) pour beaucoup de langages, nous lutiliserons pour coder en JAVA. Ce logiciel est gratuit. La spcificit d'Eclipse vient du fait que son architecture est totalement dveloppe autour de la notion de plugin.

Architecture du logiciel Eclipse: La base de cet environnement de dveloppement intgr est l'Eclipse Platform, compose de:

Platform Runtime dmarrant la plateforme et grant les plug-ins SWT, la bibliothque graphique de base de lEDI JFace, une bibliothque graphique de plus haut niveau base sur SWT Eclipse Workbench, la dernire couche graphique permettant de manipuler des composants, tels que des vues, des diteurs et des perspectives.

Ces composants de base peuvent tre rutiliss pour dvelopper des clients lourds indpendants d'Eclipse grce au projet Eclipse RCP (Rich Client Platform). L'ensemble des outils de dveloppement Java sont ensuite ajouts en tant que plugins regroups dans le projet Java Development Tools (JDT). Ces plugins sont architecturs selon les recommandations de OSGI.

ADT Plugin Eclipse:


Android Development Tools (ADT) est un plugin pour le programme Eclipse. Il est conu pour nous donner un puissant environnement pour la cration d'applications Android. ADT semploie tendre les capacits d'Eclipse pour permettre de rapidement mettre en place de nouveaux projets Android, crer une interface d'application, ajouter des composants bass sur l'API Android, dboguer les applications en utilisant les outils du SDK Android, et mme l'exportation signe (ou non signe) dAPKs afin de distribuer l'application sur lAndroid market. Dveloppement dans Eclipse avec ADT est fortement recommand par les

Pollier Christopher

Travail de Semestre

TIN-E2A

dveloppeurs expriments et est le moyen le plus rapide pour commencer sous Windows. Avec la mise en place de projets trs simples, tels que l'intgration doutils, dditeurs XML et dboguer, ADT devrait nous donner un bon coup de pouce pour le dveloppement d'applications Android.

JDK:
Java Development Kit permet de programmer des applications en Java, une plateforme de dveloppement compatible avec Mac, Linux et Windows. Le langage cr par Sun Microsystems est apprci notamment pour cette polyvalence. Ce kit de dveloppement comprend plusieurs outils de programmation dont un compilateur et un dbogueur. Il inclut galement l'environnement d'excution Java (JRE), au cas o il ferait dfaut sur votre machine. Java Development Kit regroupe les outils indispensables pour les programmeurs qui veulent s'essayer au langage Java.

Framework des mthodes de saisie


Android 1.5 a introduit le Framework des mthodes de saisies nomm IMF (Input Method Framework) que lon peut appeler clavier virtuel ou clavier logiciel. Certain Smartphone tel que le HTC Dsire nont pas de clavier physique; dautres comme le Dsire Z ont un clavier physique mais pas disponible en permanence (clavier ouvrir si on veut lutiliser).LIMF sait grer tous ces scnarios, il fera apparatre un clavier virtuel ds labsence de clavier physique.

Installation
Pour commencer linstallation, rendez-vous sur ladresse internet suivante: http://developer.android.com/sdk/index.html Rubrique Quick Start

On y trouvera les liens suivant: Hardware et logiciel requis pour que le SDK fonctionne correctement. Lien permettant de tlcharger le plugin ADT. Lien permettant de tlcharger le logiciel Eclipse Hlios. Lien permettant de tlcharger le JDK (Java Development Kit)

Installation du JDK:

Pollier Christopher

Travail de Semestre

TIN-E2A

Tlchargez le JDK votre ordinateur.

correspondant votre systme dexploitation sur

Lancez linstallation grce au fichier .exe pralablement tlcharg, puis suivez les instructions donnes.

Installation du SDK Android:


Tlcharger le sdk correspondant votre systme dexploitation cette adresse: http://developer.android.com/sdk/index.html

10

Pollier Christopher

Travail de Semestre

TIN-E2A

Une fois le tlchargement termin, dcompressez le fichier tlcharg dans un dossier fixe, car il ny a pas besoin de faire une autre manipulation pour linstaller.

Gardez en mmoire le chemin daccs au SDK car il faudra le rentrer dans Eclipse pour quil puisse interagir avec ce logiciel.

Installation du logiciel Eclipse Helios:


Allez sur le site internet http://www.eclipse.org/downloads/ pour tlcharger le logiciel de dveloppement Eclipse Helios.

Une fois tlcharg, lancez la dcompression du fichier dans le dossier Programme files de votre ordinateur. Ensuite vous pouvez crer un raccourci du programme pour mettre sur le bureau en faisant click-droit sur le fichier eclipse.exe et crer raccourci.

11

Pollier Christopher

Travail de Semestre

TIN-E2A

Installation du plugin ADT:


Pour installer le plugin ADT, il faut ouvrir le programme Eclipse. Ensuite allez dans longlet Help, Install New Software

Une fentre souvre, il faut lui donner une adresse internet pour quelle puisse tlcharger le plugin.

Ladresse est: https://dl-ssl.google.com/android/eclipse/

12

Pollier Christopher

Travail de Semestre

TIN-E2A

Appuyez sur la touche Select All puis Next

Encore une fois Next et vous arrivez sur une page ou il faut accepter les termes dun contrat.

Pour finir la procdure dinstallation appuyer sur le bouton: Finish Une fentre de chargement souvre et installe le plugin. Une fentre davertissement peut apparatre, appuyez sur OK pour continuer.

Redmarrer Eclipse la fin de linstallation pour que les changements soient effectifs.

13

Pollier Christopher

Travail de Semestre

TIN-E2A

Cration dun nouveau Projet


Pour crer un nouveau projet, il faut ouvrir le programme Eclipse Hlios, puis appuyer sur licne de cration de projet Android comme sur limage ci-dessous.

Entrez le nom de votre projet

Il faut alors slectionner la plateforme sur laquelle votre application va fonctionner.

14

Pollier Christopher

Travail de Semestre

TIN-E2A

Puis remplir les paramtres en suivant les indications de limage cidessous.

Cliquez sur la touche Finish pour terminer la cration du projet.

Cration dun mulateur Ouvrez Eclipse et appuyez sur licne (gestion des mulateurs) comme sur limage ci-dessous.

15

Pollier Christopher

Travail de Semestre

TIN-E2A

Une fentre saffiche, appuyer sur le bouton New pour ouvrir lditeur de cration.

Une fois lmulateur cr, vous pouvez le lancer en faisant un double-click dessus ou en appuyant sur Start

16

Pollier Christopher

Travail de Semestre

TIN-E2A

Arborescence dun projet

17

Pollier Christopher

Travail de Semestre

TIN-E2A

Ressources

Physiquement, les ressources de l'application sont cres ou dposes dans le rpertoire "res" du projet. L'externalisation des ressources en permet une meilleure gestion ainsi qu'une maintenance plus aise. Le rpertoire "res" sert de racine et contient une arborescence de dossier correspondant diffrents types de ressources: res/values: (type de ressources: valeurs simples) Ce rpertoire contient des fichiers (format XML) dont le nom reflte le type de ressources contenue ("arrays.xml" dfini des tableaux). res/drawable: Fichiers .png, .jpeg qui sont convertis en bitmap. res/layout: Fichiers XML convertis en mises en page d'crans (ou parties d'crans), peuvent aussi tre appels gabarits. res/anim: Fichiers XML convertis en objets d'animations. res/xml: Fichiers XML pouvant tre lus et convertis l'excution par la mthode "ressources.getXML". res/raw: Fichiers ajouter directement l'application compresse et cre. Ils ne seront pas convertis.

Toutes les ressources sont places dans un fichier de type APK qui constitue le programme distribuable de l'application. Les ressources sont accessibles et utilises depuis le code grce la classe statique "R". Cette classe est automatiquement gnre en fonction des ressources prsente dans le projet au moment de la compilation et de la construction de l'application.

18

Pollier Christopher

Travail de Semestre

TIN-E2A

Manifeste Android
Le manifeste est un fichier de type XML se trouvant la racine de chaque projet. Cest dans ce fichier que lon dclare ce que contiendra lapplication: les activits, les services, les permissions, etc. On y indique aussi la faon dont ces composants sont reli au systme Android en prcisant, par exemple, lactivit principale qui doit apparatre dans le menu principal du terminal (Launcher).

Fentre Eclipse de lAndroid Manifeste

19

Pollier Christopher

Travail de Semestre

TIN-E2A

Exemple Code Manifest.xml:

Fentre Permission Manifeste:

20

Pollier Christopher

Travail de Semestre

TIN-E2A

Exemples de codes: 1. <uses-permission> Les permissions qui seront dclares ici seront utiles lapplication. Lors de linstallation de lapplication on informera lutilisateur que lapplication utilise telle ou telle permission. Par exemple connexion rseau, vibreur, service audio . 2. <application> Un manifeste ne contient quun seul nud application, mais plusieurs de type activits, services . 3. <activity> Dclare une activit prsente lutilisateur. Si lactivit nest pas inscrite, lutilisateur ne la verra pas safficher. 4. <service> Dclare un composant de lapplication en tant que service. 5. <receiver> Dclare un rcepteur dobjet Intent. Cet lment permet lapplication de recevoir des objets alors quils sont diffuss par dautres applications ou le systme. 6. <provider> Dclare un fournisseur de contenu qui permettra daccder aux donnes gres par lapplication. 7. <uses-sdk> Dclare quelle version du SDK Android utiliser pour ouvrir lapplication. Grace au plugin ADT, on a une interface visuelle pour grer le manifeste.

21

Pollier Christopher

Travail de Semestre

TIN-E2A

Espace Dveloppeur
Contenu dun programme Android
Les composants principaux dune application Android sont:

Les activits:
Ce sont les lments de base de linterface utilisateur. On peut considrer une activit comme une fentre ou une bote de dialogue dune application classique.

Les fournisseurs de contenus:


Les fournisseurs de contenus permettent un niveau dabstraction pour toutes les donnes stockes sur le terminal et accessibles par les diffrentes applications. Le dveloppement Android pousse aux partages de donnes entre applications, le fournisseur de contenu permet lchange dinformation en gardant le contrle sur la faon dont on accdera aux donnes.

Les services:
Les activits et les fournisseurs de contenu ont une dure de vie limite et peuvent tre teints tout moment. Les services, par contre, ne sont pas prvus pour tre arrts, et fonctionnent mme si ncessaire indpendamment de toute activit. Exemple: On pourrait utiliser un service pour vrifier les mises jour dun flux RSS mme si lactivit nest plus en cours dexcution.

Les intentions (Intents):


Les Intents forment un mcanisme sophistiqu et complet permettant aux activits et aux applications de communiquer et d'interagir entre elles.

Classe Intent:
La communication du systme interne Android est base sur l'envoi et la rception de messages exprimant l'intention d'effectuer une action. Chacun de ses messages peut-tre mis destination d'un autre composant de l'application (ex: un service) ou celui d'une autre application. Issu de la classe Intent, ce message permet donc de vhiculer toutes les informations ncessaires la ralisation de l'action:

22

Pollier Christopher

Travail de Semestre

TIN-E2A

Informations destination du composant qui le rceptionnera (action effectuer et les donnes avec lesquelles agir). Informations ncessaires au systme pour son traitement (catgorie du composant cibl par le message et instructions d'excution de l'action).

On peut envoyer des Intents au systme de deux faons diffrentes: soit en ciblant un composant prcis d'une application (mode explicite) soit en laissant le systme dlguer le traitement de cette demande au composant le plus appropri (mode implicite).

Un systme de filtre permet chaque application de filtrer et de grer uniquement les Intents qui sont pertinents pour elle. C'est ainsi qu'une application peut tre en tat d'inactivit mais tout en restant l'coute des Intents du systme

Schma Intents et Filtres:

23

Pollier Christopher

Travail de Semestre

TIN-E2A

Objets Intents
Un objet Intent vhicule toutes les informations ncessaires la ralisation d'une action (ou la rception d'information). Pour dcider du composant le plus appropri utiliser, le systme se base sur les informations que l'on spcifie dans un objet Intent. Le nom du composant cibl permet de spcifier de faon non ambigu le nom du composant qui sera utilis pour raliser l'opration. (Si le nom n'est pas spcifi, le systme dterminera le composant le plus appropri.) L'action: chaines de caractres dfinissant l'action raliser. (Dans le cadre d'un rcepteur d'Intents, il s'agira de l'action qui s'est produite et pour laquelle le systme ou l'application informe toutes les autres.) Les donnes: le type de contenu (MIME4) sous la forme d'une chaine de caractres et le contenu cibl sous la forme d'un URI5. La catgorie: cette information permet de cibler plus prcisment qui devra grer l'Intent mis. (par exemple, l'utilisation de la constante "CATEGORY_BROWSABLE" demande le traitement par un navigateur web. Les drapeaux: principalement utiliss pour spcifier comment le systme doit dmarrer une application.

Ne pas oublier d'ajouter des permissions (privilge spciaux) dans le manifeste pour permettre certains Intents de bien aboutir. Schma traitement Intents:

MIME: Le type MIME (Multipurpose Internet Mail Extensions) permet de savoir de quelle manire afficher le document. 5 URI: Un URI (Uniform Ressource Identifier) est un identifiant unique permettant d'identifier une ressource de faon non ambigu sur un rseau. (exemple URI: "Schma://hote:port/chemin",Schma = type)

24

Pollier Christopher

Travail de Semestre

TIN-E2A

Ouverture dune autre classe via Intent:

Classe View
Les vues permettent la construction de linterface dune application Android. Ces objets reprsentent des lments qui safficheront lcran et qui permettront lapplication dinteragir avec lutilisateur via des vnements. Chaque cran Android contient un arbre dlments de type View dont chaque lment est diffrent des autres de par sa forme, sa taille, sa fonctionnalit La plupart des lments que nous utilisons (bouton, textes) sont fournis par la plate-forme Android, mais il nous reste toujours la possibilit de crer des lments personnaliss en partant du code dun objet dj existant. Dun point de vue plus technique, le mot widget dsigne lensemble des vues standards incluses dans la plate-forme. Elles font parties du paquetage android.widget. Les vues hritant toutes de la classe View, chaque widget hrite aussi de cette classe. Ainsi llment Button hrite de TextView, qui hrite de la classe View.

25

Pollier Christopher

Travail de Semestre

TIN-E2A

Il existe deux faons de dcrire une interface: soit via une dfinition XML soit depuis le code (Java)

Le fait de construire une interface au sein du code dune activit permet par exemple de crer des interfaces dynamiquement.

Instanciation dun widget au sein du code dune activit:


Button button = new Button(this); button.setText("Cliquez ici"); button.setOnClickListener(this);

Dfinition XML:
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cliquez ici" ></Button>

Utilisation de Widgets
Les widgets sont des composants qui serviront lutilisateur pour interagir avec lapplication. Voici quelques exemples de widgets que vous seriez amen utiliser un jour: AnalogClock Affiche une horloge aiguilles dans lapplication. AutoCompleteTextView Ce widget est une sorte dhybride dEditText et de Spinner. Le texte saisi par lutilisateur est trait comme un prfixe de filtrage: il est compar une liste de prfixes candidats et les diffrentes correspondances sont affiche dans une liste de choix qui ressemble un Spinner. Button Le widget Button est une sous-classe du widget TextView. CheckBox Hrite du widget CompounButton. Propose un choix lmentaire lutilisateur oui ou non.Pour rcuprer tout moment ltat de la case cocher, on utilise la mthode isChecked.

26

Pollier Christopher

Travail de Semestre

TIN-E2A

Chronometer Permet de mmoriser le temps coul depuis un point de dpart. Il suffit dutiliser les methode start() quand on veux dmarrer et stop() quand on veux sarrter. ColorStateListe Permet de prciser plusieurs couleurs correspondant diffrentes situations. CompounButton Hrite du widget Button. Un bouton deux tats, coch et non-coch. Lorsque le bouton est press ou cliqu, l'tat change automatiquement. DatePickerDialog Affiche des boutons permettant de saisir une date. DatePicker Affiche des boutons permettant de saisir une date. Il sadapte la rgion et la langue du tlphone. Attention, si vous devez l'utiliser, les mois commencent 0 (0= Janvier) DigitalClock Affiche une horloge digitale dans lapplication (hh:mm:ss). EditText Boite ddition permettant de saisir du texte. ImageButton Une sous-classe du widget ImageView, il fonctionne comme le widget Button, sauf que lon peut lui dfinir une image en changeant lattribut android:src comme une ImageView. ImageView Affiche une Image. Lattribut android:src permet de lui prciser limage utiliser. Limage vient en gnral des ressources graphiques (res/Drawable). ListView Conteneur permettant dafficher des donnes sous forme de liste. ProgressBar Affiche une barre de progression ou une animation. Widget de sortie dont le but consiste indiquer ltat dune progression lutilisateur. RadioButton Drive du widget CompounButton. Propose de faire un choix de rponse unique peu prs comme le widget CheckBox. Bouton deux tats pour une utilisation en groupe. RadioGroup Le fait de mettre les RadioButton dans un RadioGroup permet de faire quil ny en ait toujours quun seul de coch la fois (Basculer dun RadioButton lautre). RatingBar Affiche une barre comportant des toiles pour reprsenter ou rcuprer une notation de lutilisateur. Rcuprer la note grce la mthode getRating.

27

Pollier Christopher

Travail de Semestre

TIN-E2A

SeekBar Ce widget hrite du widget ProgressBar. Mais au lieu dtre un widget de sortie cest un widget dentre. Cest dire quil permet lutilisateur de saisir une valeur prise parmi un intervalle donn (exemple: contrle du volume). Spinner Cest une bote droulante. Une boite droulante est un mix entre une liste et un AlertDialog (fentre qui souvre pour prvenir lutilisateur dun vnement.). TextView Affiche un texte. On utilise la mthode setText() pour lui ajouter du texte. TimePickerDialog Affiche des boutons pour rgler une heure. Elle est sous la forme hh:mm on peut aussi indiquer si elle fonctionne sur 12heures avec lindication AM/PM ou 24heures. TimePicker Affiche des boutons pour rgler une heure. Elle est sous la forme hh:mm on peut aussi indiquer si elle fonctionne sur 12heures avec lindication AM/PM ou 24heures.

Atteindre un widget cr dans un fichier XML


Grace la mthode findViewById () on peut accder nos widgets depuis le code java, en lui passant lidentifiant numrique (id) du widget concern. Lidentifiant a t cr par Android dans la class R et est de la forme R.id.id_widget_xml. Exemple appel widget:

Listener
Un listener en franais se traduit par un couteur. Un couteur, comme son nom lindique, coute une source jusqu ce quelle soit utilise. Pour quune action soit ralise, il faut quun metteur envoie un signal dans le canal dcoute pour que le listener se dclenche. Action: Clic sur un bouton

28

Pollier Christopher

Travail de Semestre

TIN-E2A

Listener: Ecoute si le bouton est cliqu Code:

Si vous avez envie dcouter le changement dtat dun widget, alors nhsitez pas chercher une mthode utilisant un Listener.

Animations
Nous pouvons animer une View directement depuis le code ou depuis un fichier XML. Diffrentes Animations: - Opacit (Alpha): permet de jouer sur la transparence ou lopacit dune vue. chelle (Scale): permet de spcifier lagrandissement/rduction sur les axes X et Y appliquer la vue. Translation (Translate): permet de spcifier la translation/dplacement effectuer par la vue. Rotation (Rotate): permet deffectuer une rotation selon un angle en degr et un point de pivot.

Chaque type danimation possde une sous-classe drivant de Animation: AlphaAnimation ScaleAnimation TranslateAnimation RotateAnimation

29

Pollier Christopher

Travail de Semestre

TIN-E2A

Animer par le code:

Animer par fichier XML: Il faut crer un dossier res/anim et y mettre un fichier xml avec lintrieur les paramtres de lanimation. Exemple pour une image cette fois:

Code pour utiliser lanimation:

30

Pollier Christopher

Travail de Semestre

TIN-E2A

Interface dune application


Nous avons vu prcdemment quun widget pouvait tre cr de deux manires diffrentes directement en code Java ou depuis un fichier XML. Lavantage dutiliser un fichier XML, cest qu'il est plus facile lire et crer et nous permet aussi de crer des interfaces multilingues. Grace au plugin ADT nous avons en plus la possibilit de prvisualiser ce que reprsente le code dun fichier XML, un grand avantage quand on nest pas encore un As pour la cration dinterfaces. Vous trouverez ci-dessous les outils pour crer une interface dapplication depuis un fichier XML.

Conteneurs
Les conteneurs sont indispensables, ils permettent de disposer un ensemble de widgets pour obtenir la prsentation voulue dune interface. AbsoluteLayout Le contenu dun AbsoluteLayout est dispos en fonction de coordonnes spcifiques. On lui indique o placer un fils en lui prcisant ses coordonnes X et Y. Puis Android le positionne cet endroit sans poser de question. Ceci a lavantage de fournir la possibilit de faire un positionnement prcis mais malheureusement, lapplication ne sera utilise que sur une certaine taille dcran. Ce conteneur nest plus trs utilis, et mme dconseill aujourdhui. FrameLayout Le FrameLayout est le conteneur de contenu des onglets. Chaque contenu des onglets est un fils du FrameLayout. HorizontalScrollView Fonctionne comme le conteneur ScrollView, mais de manire horizontale. Notez quil faut choisir soit un scroll vertical, soit un scroll horizontal. On ne pourra pas intgrer les 2 en mme temps. LinearLayout LinearLayout est un modle reposant sur des botes. Les widgets ou le conteneur fils sont aligns en colonne ou en lignes, les uns aprs les autres. Pour configurer un LinearLayout on peut agir sur 5 paramtres tels que lorientation, le modle de remplissage, le poids, la gravit et le remplissage(Padding).

31

Pollier Christopher

Travail de Semestre

TIN-E2A

RelativeLayout Il place les widgets relativement aux autres widgets du conteneur et de son conteneur parent. Vous pouvez donc placer votre widget par rapport un autre widget, soit en dessous ou en dessus, soit gauche ou droite. ScrollView ScrollView est un conteneur qui fournit un dfilement vertical son contenu. ViewFlipper Hrite de FrameLayout, permet de passer dun onglet un autre sans cliquer sur longlet mais en faisant un dplacement avec le doigt sur lcran.

Exemple dInterface:

32

Pollier Christopher

Travail de Semestre

TIN-E2A

Code relatif lexemple dinterface:

33

Pollier Christopher

Travail de Semestre

TIN-E2A

Internationalisation dune application


Si un jour vous comptez mettre en vente votre application sur lAndroid Market, il faut prendre en compte que la majorit des utilisateurs parleront anglais. Dans lidal il faut que votre application change de langue en fonction de la langue du Smartphone. Supposons que vous voulez fournir des textes anglais et franais. Pour une application non traduite, vous placeriez normalement ces chanes de caractre dans le fichier res/values/strings.xml mais, pour pouvoir reconnatre la fois langlais et le franais, vous devez crer deux rpertoires. Celui de base sera pris automatiquement si la langue du tlphone est en anglais. Ensuite, il faut crer le deuxime, res/ values-fr-rCH/strings.xml est pour la langue franaise et rgion suisse. Exemples:

On peut faire le mme procd avec les images ou toutes sortes de ressources du projet.

34

Pollier Christopher

Travail de Semestre

TIN-E2A

Liens avec listes des langues et pays: - www.loc.gov/standards/iso639-2/php/code_list.php www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_an d_code_elements.htm

Conclusion:
Il reste encore un nombre dlments important dcouvrir concernant le dveloppement dapplications, jespre toutefois que se document vous a aid progresser. Bonne continuation sur la voie du dveloppement dapplications Android !

35

You might also like