Android Avancé
Pour
Le développement des applications mobiles
25/11/2020 [Link]@[Link] 1
Les objectifs du cours:
• Développer les Interfaces Homme-Machine avancé
• Comprendre et utiliser les parseurs.
• Comprendre le principe d’invocations des méthodes à distant.
• Manipuler les capteurs .
• Programmer des services.
25/11/2020 [Link]@[Link] 2
Le plan du cours:
Chapitre 1: 3 Séances
Programmation des IHMs avancés: ListView, GridView et Gallery, …
Chapitre 2: 1Séance
Les parseurs XML et JSON
Chapitre 3: 1 Séance
Invocation des méthodes à distance par un client Android.
Chapitre 4: 2 Séance
Les capteurs en Android
Chapitre 5: 1 Séance
Programmer des services en android
25/11/2020 [Link]@[Link] 3
Le références:
[Link]
[Link]
L’art du développement Android, Mark Murphy
Professional Android Application Development – Wrox
25/11/2020 [Link]@[Link] 4
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
ListView = Un composant graphique très utilisé par les applications Android.
ListView permet d’affiche un ensemble des éléments appelés Items.
Chaque Item peut contenir un ou plusieurs Widgets
ListView Item 1..*
Widget
1..*
ListView doit être accessible par défilement vertical ou par un filtre.
ListView offre deux mode de sélections simple ou bien multiple.
25/11/2020 [Link]@[Link] 5
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
C’est quoi la différence entre les deux IHMs suivants?
VS VS
25/11/2020 [Link]@[Link] 6
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
Chaque ListView possède une stratégie d’affichage qu’elle l’applique pour afficher
ces Items.
Stratégie d’affichage = Adapter
Il existe des adapter standards prédéfinis tels que: SimpleAdapter, ArrayAdapter,
BaseAdapter et CursorAdapter. (Utilisés par les ListView statique)
Le programmeur à le droit de personnalisé une stratégie d’affichage (Adapter) mais il
hérite d’un adapter standard. (ListView dynamique)
Dans le cas où la ListView comporte un élément cliquable, ou les valeurs des éléments
de ces Items changent, le programmeur est appelé à personnaliser un adapter pour
pouvoir exploiter l’élément.
25/11/2020 [Link]@[Link] 7
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Permet le retour vers la page
principale de l’application
4
Une liste qui comporte plusieurs
Items le clique sur la flèche
affiche une layout qui montre le
détail de la recommandation
1
Permet d’afficher le formulaire d’ajout
Permet de filtrer la liste
3 Permet d’ordonner la liste
25/11/2020 [Link]@[Link] 8
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Permet d’afficher les différents Permet d’afficher une layout
méthodes d’insertion des images animée pour choisir la catégorie
25/11/2020 [Link]@[Link] 9
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
25/11/2020 [Link]@[Link] 10
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
25/11/2020 [Link]@[Link] 11
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
25/11/2020 [Link]@[Link] 12
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Etape 1: Création de la layout principale qui affiche la ListView
Barre d’action
Barre de Menu
25/11/2020 [Link]@[Link] 13
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Etape 2: Création de la layout qui présente un Item de la ListView
25/11/2020 [Link]@[Link] 14
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Notre Adapter hérite de l’ adapter
Etape 3: Création d’un adapter de la ListView standard BaseAdapter
Liste des Items, chaque Item est
présenté par un HashMap
myInflater objet de type
LayoutInflater transformer un fichier
XML en arbre et la lecture de cette
arbre
Redéfinition de la méthode getCount ()
qui retourne le nombre des Items
d’une liste
Redéfinition de la méthode getItem
qui retourne l’objet qui présente le
Item de la liste qui se trouve à une
position donnée Constructeur
25/11/2020 [Link]@[Link] 15
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Etape 3: Création d’un adapter de la ListView
Redéfinition de la méthode getItemId
qui retourne l’identifiant d’un objet
Item qui se trouve à une position
ViewHolder est une classe interne
appelé aussi cache qui contient toutes
les éléments de l’Item changeables ou
cliquables
25/11/2020 [Link]@[Link] 16
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
• La méthode getView est appelée par
Etape 3: Création d’un adapter de la ListView Android à chaque fois qu’on affiche
la liste et seulement sur les lignes
présentées.
• Principe de la méthode:
Appel du fichier XML qui présente
l’Item.
Faire une correspondance entre les
éléments de l’Item et ces valeurs.
inflate est une méthode qui fait la
transformation d’un fichier XML en
un arbre Java.
La vue doit être créer.
Tag un objet permet de stocker la
structure d’un élément de la liste.
Récupérer la structure de l’élément.
25/11/2020 [Link]@[Link] 17
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Etape 3: Création d’un adapter de la ListView
Affecter les valeurs de chaque élément de
la liste on se basant sur le concept
Clé/Valeur
25/11/2020 [Link]@[Link] 18
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Etape 4: Programmation de l’Activité
25/11/2020 [Link]@[Link] 19
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Etape 4: Programmation de l’Activité
25/11/2020 [Link]@[Link] 20
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 1: Création des ListView
1. Création d’une liste qui utilise un adapter personnalisé
Etape 4: Programmation de l’Activité
25/11/2020 [Link]@[Link] 21
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 2: Le passage d’une activité à autre
Développer et afficher la vue ajouter une recommandation
Etape 1: développer la layout qui permet l’ajout d’une nouvelle recommandation
25/11/2020 [Link]@[Link] 22
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 2: Le passage d’une activité à autre
Développer et afficher la vue ajouter une recommandation
Etape 2: Programmation du passage de l’activité consulter recommandation vers
l’activité ajouter recommandation
25/11/2020 [Link]@[Link] 23
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 2: Le passage d’une activité à autre
4. Développer et afficher la vue consulter le détail d’une recommandation
Etape 1: Programmation de la layout pour consulter les détails d’une recommandation
Etape 2: Programmer l’Intent de passage vers
l’écran de détail d’une recommandation(ajouter
Ce code à l’adapter).
25/11/2020 [Link]@[Link] 24
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 3: Animation en Android
• Android intègre un petit moteur permettant d’appliquer des animations sur un
widget ou d’un layout.
• Les animations sont programmées par code Java et par XML.
• Les animations sont des assemblages d’effets élémentaires qui une transformation sur
une instance d’objet View.
• La définition des animations peut être faite via un fichier XML ou par code Java via
la classe [Link].
• Android offre 4 animations de base:
alpha: réalise un effet de fondu en jouant sur le niveau de transparence.
scale: réalise un redimensionnement.
25/11/2020 [Link]@[Link] 25
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 3: Animation en Android
translate: effectuer un mouvement de translation horizontale, verticale ou les
deux on fixant les coordonnées X et Y de la position de départ et ceux de la
position d’arrivée.
rotate: il s’Agit d’un mouvement de rotation on fixant les coordonnées du point
de pivotage et l’Angle de rotation.
• Les définitions des animations se fait par le tag <set> si on utilise XML ou bien via un
objet AnimationSet si on utilise le code Java.
• L’attribut duration permet de fixer la durée de l’animation en ms.
• L’attribut repeatCount permet de définer le nombre de fois qu’on veut répeter
l’animation.
25/11/2020 [Link]@[Link] 26
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 3: Animation en Android
1. Exemple simple de l’utilisation des animations en Android: texte qui bouge
25/11/2020 [Link]@[Link] 27
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 3: Animation en Android
1. Exemple simple de l’utilisation des animations en Android: texte qui bouge
25/11/2020 [Link]@[Link] 28
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 3: Animation en Android
2. Utilisation des animations avancées
Etape 1: Création de la layout qui affiche les différente manières de filtrage
……….
25/11/2020 [Link]@[Link] 29
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 3: Animation en Android
2. Utilisation des animations avancées
Etape 2: Création d’un style d’animation:
25/11/2020 [Link]@[Link] 30
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 3: Animation en Android
2. Utilisation des animations avancées
Etape 3: La programmation de l’animation
25/11/2020 [Link]@[Link] 31
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
Attention: Eviter les interfaces trop encombrer
• L’utilisation des menus et sous menus en android font une bonne solution pour ne pas
avoir des interfaces encombrés.
• Il existe deux types de menus en Android:
Les ‘Option Menus’
Les ‘Context Menus’
• Les Option Menus sont les menus principaux de l’application, liés à des activités et
accessible par le clique directe sur le Menu.
• Les Context Menus sont les menus contextuels, ils sont liés à un objet de type View,
accessible par un long clique sur l’objet.
25/11/2020 [Link]@[Link] 32
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Le point commun entre les deux types de menus, ils peuvent être définis par code java,
et par un fichier XML.
• Pour créer un menu « Option », il faut redéfinir la méthode public boolean
onCreateOptionsMenu(Menu menu) sur l’activité.
• Il éxiste deux façons Pour associer une action à chacun des items d’un menu:
Redéfinir la méthode onOptionItemSelected sur l’activité.
Enregistrer un listener de type OnMenuItemClickListener sur le MenuItem.
• Pour créer un menu contextuel sur un widget donné il faut enregistrer un listener de
type [Link] sur celui-ci.
• La classe activity implémente cette interface.
• Implémenter l’unique méthode de ce listener qu’est onCreateContextMenu sur
l’activité, sa logique est la même que onCreateOptionsMenu
25/11/2020 [Link]@[Link] 33
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Option Menu’
Etape1: Copier touts les icônes dans l’un des dossier drawable
25/11/2020 [Link]@[Link] 34
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Option Menu’
Etape2: définir le fichier [Link] qui comporte toutes les menus
25/11/2020 [Link]@[Link] 35
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Option Menu’
Etape3: définir les fichier [Link] qui existe dans les dossiers values, values-v14 et values- v11
25/11/2020 [Link]@[Link] 36
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Option Menu’
Etape4: Redéfinir les méthodes onCreateOptionMenu et onOptionItemSelected
25/11/2020 [Link]@[Link] 37
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu avec sous menu de type ‘Option Menu’
25/11/2020 [Link]@[Link] 38
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Context Menus’
Etape 1: programmer votre menu contextuel
25/11/2020 [Link]@[Link] 39
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Context Menus’
Etape 2: programmer une layout qui comporte le widget avec lequel on va
associer le menu contextuel:
25/11/2020 [Link]@[Link] 40
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Context Menus’
Etape 3: programmer l’activité
25/11/2020 [Link]@[Link] 41
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 4: Les Menus en Android
• Exemple de Menu de type ‘Context Menus’
Etape 3: programmer l’activité
25/11/2020 [Link]@[Link] 42
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
• Un fragment = portion d’une activité = sous partie d’une activité .
• La notion de fragment a été introduite depuis la version 3.0 d’Android.
• Un fragment = un fichier XML + une classe java qui hérite de la classe Fragment.
• Un fragment toujours s’exécute dans le context de l’ activité avec laquelle il est attaché.
• Alors le cycle de vie d’un fragment est dépend du cycle de vie de l’activité.
• Une fois l’activité est arrêtée touts ces fragments sont arrêtés.
• Un fragment peut être actif dans une ou plusieurs activités.
• Une activité peut comporter un ou plusieurs fragments
25/11/2020 [Link]@[Link] 43
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
• Un fragment à un cycle de vie similaire.
onAttach (): permet d’attacher un fragment à l’activité.
onCreate (): la création de l’instance du fragment.
onCreateView(): permet l’ajout de la View fragment au son
conteneur(activité).
onActivityCreated (): la création d’une instance de l’activité
avec le fragment.
onStart () : lancement de l’activité avec le fragment.
onResume (): le fragment devient à nouveau actif
onPause () : le fragment et visible mais n’est pas actif.
onStop () : le fragment est invisible.
onDestroy () : la destruction du fragment.
25/11/2020 [Link]@[Link] 44
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
• Les fragments sont utilisés sous plusieurs formes tels que:
25/11/2020 [Link]@[Link] 45
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
Exemple d’utilisation des fragments:
25/11/2020 [Link]@[Link] 46
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
Exemple d’utilisation des fragments:
Etape 1: Création des fragments (chaque fragment à un layout et une activité)
25/11/2020 [Link]@[Link] 47
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
Exemple d’utilisation des fragments:
Etape 1: Création des fragments (chaque fragment à un layout et une activité)
25/11/2020 [Link]@[Link] 48
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
Exemple d’utilisation des fragments:
Etape 1: Création des fragments (chaque fragment à un layout et une activité)
25/11/2020 [Link]@[Link] 49
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
Exemple d’utilisation des fragments:
Etape 2: Création d’adapter (Stratégie d’affichage)
25/11/2020 [Link]@[Link] 50
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 5: Utilisation des fragments
Exemple d’utilisation des fragments:
Etape 3: Programmation de l’activité
25/11/2020 [Link]@[Link] 51
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 6: Les notifications en Android
• Les notifications facilite la communication et l’interaction entre l’application android et
l’utilisateur lors de la survenue d’évènements particuliers.
• Le concept des notifications est basé sur l’affichage d’un message en haut de l’écran permettant de
prévenir l’utilisateur de certains évènements tels que arriver d’un SMS, mail, appel en absence …
• La classe Toast définie par Android permet de notifier l’utilisateur mais cette notification ne
persiste pas.
• Les messages importants doivent persister pour données beaucoup de chance à l’utilisateur, pour
qu’il les consulte.
• La création et l’envoi des notifications passe par les étapes suivantes:
Étape 1: Création d’un constructeur de la notification (Notification Builder).
Étape 2: Configurer les propriétés de la notification.
Étape 3: Attacher une action à la notification si nécessaire.
Étape 4: Envoyer la notification.
25/11/2020 [Link]@[Link] 52
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 6: Les notifications en Android
Exemple d’envoi d’une notification:
25/11/2020 [Link]@[Link] 53
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 6: Les notifications en Android
Exemple d’envoi d’une notification:
Etape1: Création du layout principal
Le layout principal contient un bouton, le clique sur ce dernier permet
l’envoi de la notification
25/11/2020 [Link]@[Link] 54
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 6: Les notifications en Android
Exemple d’envoi d’une notification:
Etape2: Création du layout et l’activité de la notification (Optionnel)
25/11/2020 [Link]@[Link] 55
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 6: Les notifications en Android
Exemple d’envoi d’une notification:
Etape3: Création et l’envoi de la notification
25/11/2020 [Link]@[Link] 56
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 6: Les notifications en Android
Exemple d’envoi d’une notification:
Etape3: Création et l’envoi de la notification
25/11/2020 [Link]@[Link] 57
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 6: Les notifications en Android
• La classe [Link] est la classe clé du processus de la création d’une
notification, dans ce qui suit quelques méthodes de cette classe à part celles traitées dans
l’exemple.
Méthode Description
build() Combine touts les paramètres de la notification et return un objet
de type Notification.
setAutoCancel (boolean b) Si b=true la notification sera supprimer d’une façon automatique
une fois l’utilisateur clique sur l’écran. (b par défaut égale à false).
setDefaults (int defaults) Indique une notification par défaut
setOngoing (boolean b) Si b= true c’est-à-dire la notification est encours d’exécution.
setStyle ([Link] style) Applique un style sur la notification
setWen (long t) Programmer le temps que la notification se est produit
25/11/2020 [Link]@[Link] 58
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
• Les applications android utilisent fréquemment les boite de dialogue pour avertir l’utilisateur.
• Les boites de dialogue ou les alertes dialogues donnent à l’utilisateur la possibilité de prendre une
décision.
• Les étapes à suivre pour développer une boite de dialogue sont:
La création d’une instance de constructeur de l’alerte dialogue ([Link]).
La configuration de ensemble des elements de l’alerte dialogue via les méthodes (setMessage,
setPositiveButton, setNegativeButton, …).
Créer l’alerte dialogue via la méthode create() de la classe [Link]
Afficher l’alerte dialogue via la méthode show().
25/11/2020 [Link]@[Link] 59
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
Exemple d’utilisation de l’Alerte Dialogue
25/11/2020 [Link]@[Link] 60
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
Exemple d’utilisation de l’Alerte Dialogue
Étape 1: Création du layout principal
25/11/2020 [Link]@[Link] 61
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
Exemple d’utilisation de l’Alerte Dialogue
Étape 2: Création du layout et l’activité
déclenchés après une décision positive
25/11/2020 [Link]@[Link] 62
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
Exemple d’utilisation de l’Alerte Dialogue
Étape 3: Création du layout et l’activité
déclenchés après une décision négative
25/11/2020 [Link]@[Link] 63
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
Exemple d’utilisation de l’Alerte Dialogue
Étape 3: Création et le lancement de l’alerte
dialogue
25/11/2020 [Link]@[Link] 64
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
Exemple d’utilisation de l’Alerte Dialogue
Étape 3: Création et le lancement de l’alerte
dialogue
25/11/2020 [Link]@[Link] 65
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 7: Alerte Dialogue en Android
• La classe [Link] possède encore des méthodes a part celles qu’ont été utilisées dans
l’exemple précèdent.
Méthode Description
setIcon(Drawable icon) Associer un icon à l’alerte dialogue.
setCancelable (boolean b) Si b=true l’alerte dialogue peut être supprimer même
l’utilisateur n’a pas pris la décision.
setMultiChoiceItems (CharSequence[] items, Affiche une liste des éléments (Items), la sélection de l’un
boolean[] checkedItems, des éléments déclenche l’action correspondante définie par
[Link] le listener.
listener)
25/11/2020 [Link]@[Link] 66
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 8: Auto-complète du texte en Android
• Android offre la possibilité de compléter d’une façon automatique un texte éditable.
• Cette fonctionnalité permet le gain en temps d’une part et la vérification syntaxique du text
d’autre part.
• Android offre deux widgets permettant la fonction de l’auto-complète: AutoCompleteTextView et
MultiAutoCompleteTextView
• AutoCompleteTextView: permet l’exploitation de la fonction auto-complète sur un seule mot.
• MultiAutoCompleteTextView: permet l’exploitation de la fonction auto-complète sur plusieurs
mots séparés par une virgule.
• Les étapes à suivre pour programmer l’Auto-complète sont:
Créer le layout principal qui comporte les widgets AutoCompleteTextView et/ou
MultiAutoCompleteTextView.
Créer une base de mots sous forme d’un tableau de strings sur le fichier [Link].
Développer l’activité principale
25/11/2020 [Link]@[Link] 67
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 8: Auto-complète du texte en Android
Exemple d’utilisation de auto-complète texte simple et multiple:
Etape 1: Création du layout principal
25/11/2020 [Link]@[Link] 68
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 8: Auto-complète du texte en Android
Exemple d’utilisation de auto-complète texte simple et multiple:
Etape 1: Création du layout principal
25/11/2020 [Link]@[Link] 69
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 8: Auto-complète du texte en Android
Exemple d’utilisation de auto-complète texte simple et multiple:
Etape 2: Développement de l’activité principale.
25/11/2020 [Link]@[Link] 70
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 9: Appliquer un font sur un TextView en Android
Le programmeur peut personnaliser un font pour les textes de l’application tels que:
25/11/2020 [Link]@[Link] 71
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 9: Appliquer un font sur un TextView en Android
Etape 1: Création du TextView et l’ajout du font à appliquer dans un dossier fonts du
dossier assets
25/11/2020 [Link]@[Link] 72
Chapitre1:Programmation des IHMs avancés: ListView, GridView et Gallery, …
Atelier 9: Appliquer un font sur un TextView en Android
Etape 2: l’application du font sur le TextView:
On utilise la méthode statique createFromAsset de la classe
Typeface pour créer le font.
On applique le font via la méthode setTypeface
25/11/2020 [Link]@[Link] 73
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
• JSON = JavaScript Object Notation.
• Une notation objet issue de JavaScript.
• Les avantages de JSON:
Format léger d’échange de données.
Il est facile à lire ou à écrire pour les humains.
Il est aisément analysable par les machines.
JSON est un format texte complètement indépendante de tout langage.
Il peut être utilisé par touts les langages descendent du C tels que: C, C++, Java,
PHP, JavaScript, Perl, Python, ….
Ces avantages font de JSON un langage d’échange de données idéal.
25/11/2020 [Link]@[Link] 74
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
JSON – Structure:
JSON est bâti sur deux structures:
Une collection de paires nom/valeur: permet de concrétiser un objet, un
enregistrement, une structure, un dictionnaire ou une Map.
Une liste ordonnée des valeurs: ceci peut prendre la forme d’un tableau (array),
d’un vecteur (vector) ou d’une liste.
Ces deux structures de données sont universelles, utilisées pratiquement par touts
les langages de programmation, chose qui fait de JSON le format d’échange de
données le plus sollicité.
25/11/2020 [Link]@[Link] 75
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
JSON – Valeur:
Une valeur peut être soit:
• une chaîne de caractères entre guillemets.
• un nombre.
• true ou false pour les valeurs boolean.
• la valeur null.
• un objet.
• un tableau.
25/11/2020 [Link]@[Link] 76
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
JSON – Valeur:
La structure de la valeur peut être imbriquée:
25/11/2020 [Link]@[Link] 77
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
JSON – Objet:
Un objet est un ensemble non ordonné de paires nom/valeur.
Un objet commence par le caractère { (accolade ouvrante) et finit par le caractère }
(accolade fermante).
Le nom et la valeur sont séparés par : (deux points).
Les paires nom/valeur d’un objet sont séparés par , (virgule).
Structure d’un objet:
25/11/2020 [Link]@[Link] 78
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
JSON – Objet:
Exemple d’un objet:
“nom“ : “Charradi“,
“prenom“ : “Karim“,
“age“ : 22 ,
“genre“ : “etudiant“ ,
“inscrit“ : true ,
25/11/2020 [Link]@[Link] 79
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
JSON – Tableau:
Un tableau est une collection de valeurs ordonnées.
Un tableau commence par le caractère [ (crochet ouvrant) et se termine par le
caractère ] (crochet fermant).
Les valeurs sont séparées par le caractère , (virgule).
La structure d’un tableau est:
25/11/2020 [Link]@[Link] 80
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
JSON – Tableau:
Exemple d’un tableau:
{ “nom“ : “Charradi“ , “prenom“ : “Karim“ },
{ “nom“ : “Berrada“ , “prenom“ : “Hicham“ },
{ “nom“ : “Karimi“ , “prenom“ : “Ahmed“ },
{ “nom“ : “Sabir“ , “prenom“ : “Ibrahim“ },
25/11/2020 [Link]@[Link] 81
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
L’atelier consiste à développer une application mobile permet d’afficher les données
température, humidité, pression et le pays d’une ville saisie par l’utilisateur. L’interface
graphique de l’application et le suivant:
25/11/2020 [Link]@[Link] 82
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Notre application utilisera les services offerts par un web service gratuit de l’url:
[Link]
56e6a79264f24383&units=metric
L’application doit définir un parseur JSON pour extraire les informations qu’on veut
afficher
25/11/2020 [Link]@[Link] 83
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Etape 1: Création de l’interface graphique
25/11/2020 [Link]@[Link] 84
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Etape 2: Création des méthodes pour lire et parser le fichier JSON:
Les getters et les setters
25/11/2020 [Link]@[Link] 85
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Etape 2: Création des méthodes pour lire et parser le fichier JSON:
25/11/2020 [Link]@[Link] 86
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Etape 2: Création des méthodes pour lire et parser le fichier JSON:
25/11/2020 [Link]@[Link] 87
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Etape 3: développer l’activité principale
25/11/2020 [Link]@[Link] 88
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Etape 3: développer l’activité principale
25/11/2020 [Link]@[Link] 89
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Atelier:
Etape 4: définir la permission d’utilisation de l’Internet
Sur le fichier [Link] ajouter la permission d’utilisation
de l’Internet par l’ajout de:
25/11/2020 [Link]@[Link] 90
Chapitre2: Parseur JSON et XML
Atelier 10:Parser un fichier JSON en Android
Méthode Description
get(String name) Retourne la valeur associe du clé name sous forme d’un objet
getBoolean (String name) Retourne la valeur boolean spécifier par la clé name.
getInt (String name) Retourne la valeur entier spécifier par la clé name.
getDouble (String name) Retourne la valeur double spécifier par la clé name.
getLong (String name) Retourne la valeur long spécifier par la clé name
Length() Retourne le nombre des paires nom/valeur d’un objet JSON
Names() Retourne un tableau qui comporte les noms d’un objet JSON
25/11/2020 [Link]@[Link] 91
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
XML: eXtensible Markup Language.
XLM a été créé pour standardiser l’échange et le stockage des données.
HTML a été créé pour l’affichage et la présentation de données
XML est un langage de balise comme HTML.
XML a été crée pour l’échange et non pour l’affichage de données.
Les balises XML ne sont pas spécifiées, c’est à vous de les définir.
XML est auto-descriptif.
XML est une recommandation du W3C.
25/11/2020 [Link]@[Link] 92
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
XML & HTML
XML HTML
La structure, l’échange et le stockage de La présentation et l’affichage de
données données
La possibilité de définir des balises Les balises sont prédéfinies
La possibilité de programmer le document Le document de validation est unique
de validation. et prédéfini.
XML est une recommandation du W3C XML est une recommandation du W3C
25/11/2020 [Link]@[Link] 93
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Exemple d’un document XML:
<?xml version="1.0" encoding="ISO-8859-6"?>
<bebliotheque>
<livre categorie=" Cuisine ">
<titre lang="en">Everyday Italian</titre>
<auteur>Giada De Laurentiis</auteur>
<annee>2005</annee>
<prix>30.00</prix>
</livre>
<livre categorie="Enfant">
<titre lang="en">Harry Potter</titre>
<auteur>J K. Rowling</auteur>
<annee>2005</annee>
<prix>29.99</prix>
</livre>
<livre categorie="WEB">
<titre lang="en">Learning XML</titre>
<auteur>Erik T. Ray</auteur>
<annee>2003</annee>
<prix>39.95</prix>
</livre>
</bebliotheque>
25/11/2020 [Link]@[Link] 94
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Arbre d’un document XML:
<?xml version="1.0" encoding="ISO-8859-6"?> Prologue
<bebliotheque> La racine
<livre categorie=" Cuisine ">
<titre lang="en">Everyday Italian</titre>
<auteur>Giada De Laurentiis</auteur> Élément 1
<annee>2005</annee>
<prix>30.00</prix>
</livre>
<livre categorie="Enfant">
<titre lang="en">Harry Potter</titre>
<auteur>J K. Rowling</auteur> Élément 2
<annee>2005</annee>
<prix>29.99</prix>
</livre>
<livre categorie="WEB">
<titre lang="en">Learning XML</titre>
<auteur>Erik T. Ray</auteur> Élément 2
<annee>2003</annee>
<prix>39.95</prix>
</livre>
</bebliotheque>
25/11/2020 [Link]@[Link] 95
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Arbre d’un document XML: La structure d’un élément
Balise d’ouverture d’un élément
Attribut Valeur
<livre categorie=" Cuisine ">
<titre lang="en">Everyday Italian</titre>
<auteur>Giada De Laurentiis</auteur>
<annee>2005</annee>
<prix>30.00</prix>
</livre>
Balise de fermeture d’un élément
25/11/2020 [Link]@[Link] 96
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Téchnologies associées à XML:
DTD Document Type Definition.
XSD Schéma XML.
XSL Feuilles de styles pour XML.
DOM XML Document Object Model.
Xlink Liens hypertexte dans XML.
Xquery Il est pour XML ce que SQL est pour les DB.
25/11/2020 [Link]@[Link] 97
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Téchnologies basées sur XML:
XML est partout. Il est l'outil le plus courant pour la transmission de données entre toutes sortes
d'applications, et devient de plus en plus populaire dans le domaine du stockage et la description de
l'information.
SOAP Echange de données entre applications.
WSDL web services.
SMIL Synchronized Multimedia Integration Language.
SVG Scalable Vector Graphics.
Les serveurs d’applications : Jboss, …
…
25/11/2020 [Link]@[Link] 98
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Règles de syntaxe XML:
Un document XML doit avoir un nœud RACINE.
Les balises XML doivent être correctement imbriquées.
Les balises XML doivent être fermées
Les attributs de balises XML doivent être entourés de guillemets
Les balises XML sont sensibles à la casse.
Un document XML qui respecte ces règles est dit bien formé.
(Well Formed)
25/11/2020 [Link]@[Link] 99
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Entités prédéfinies en XML:
Les caractère <, >, &, ' et " sont des entités réservées en XML, doivent être remplacés par leur
entité équivalente :
• < < less than
• > > greater than
• & & ampersand
• ' ' apostrophe
• " " quotation mark
25/11/2020 [Link]@[Link] 100
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Commentaire en XML:
Identiques aux commentaires HTML
<!-- Voici un commentaire -->
Il est interdit de mettre un double-tiret (--) dans un commentaire
Les commentaires ne doivent pas être insérés dans une balise ouvrante ou fermante
Elément en XML:
Un élément commence à l’ouverture de la balise et fini à la fermeture de celle-ci.
Exemple :
<naissance>
<date>12/12/1976</date>
<lieu>Casablnaca</lieu>
</naissance>
L’élément <naissance> contient les éléments <date> et <lieu>. Ces deux derniers contiennent du
texte.
25/11/2020 [Link]@[Link] 101
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Les attributs en XML:
Les attributs sont utilisés pour donner des informations sur les éléments.
Exemple :
<img src="[Link]" />
pourrait s’écrire sous la forme :
<img>
<src>[Link]</src>
</img>
Le premier cas est à utiliser car le nom du fichier n’est pas la données elle-même, mais une
information sur la donnée. (méta data)
25/11/2020 [Link]@[Link] 102
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Le prologue en XML:
Déclaration XML importante
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
• version : version du XML 1.0
• encoding : Codage du jeu de caractères utilisé
• standalone : autonomie du document par rapport à une dtd externe (par défaut "no").
• Le fichier XML doit commencer par cette déclaration.
…
25/11/2020 [Link]@[Link] 103
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
XML: Exercice d’application
Un document News contient un ensemble d’articles.
Chaque article est caractérisé par :
• un identificateur « id »
• Date de publication
• Nom de l’auteur
• Titre de l’article
• Résumé de l’article
• Image de l’article (chemin)
• Corps de l’article
• Liens de l’article
[Link] la structure du document
25/11/2020 [Link]@[Link] 104
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Document Type Definition
La DTD définit les éléments utilisables dans un document XML.
Elle définit la structure du document avec une liste d'éléments et d'attributs autorisés.
Un document XML bien formé et respectant les définitions de la DTD est dit Valide.
Pourquoi utiliser une DTD:
Avec une DTD, on limite les balises et les attributs utilisables pour une application donnée.
Avec une DTD, des groupes différents peuvent se mettre d’accord sur un format d’échange de
données.
Avec une DTD, une application peut vérifier la validité des données qu’elle reçoit.
25/11/2020 [Link]@[Link] 105
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Syntaxe d’une déclaration interne
Syntaxe :
<!DOCTYPE élément-racine [déclaration-d-élément]>
Exemple:
<?xml version="1.0"?>
<!DOCTYPE message [
<!ELEMENT message (de, a, corps)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT a (#PCDATA)>
<!ELEMENT corps (#PCDATA)> ]>
<message>
<de>Chougdali</de>
<a>MIAM</a>
<corps> Bonjour mes étudiants</corps>
</message>
25/11/2020 [Link]@[Link] 106
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration
Une DTD est déclarée dans un document XML.
Elle peut être interne ou externe.
• Interne : définie dans le document
• Externe : Définie dans un fichier séparé et référencée dans le document XML
25/11/2020 [Link]@[Link] 107
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Par quoi elle constituée un document XML?
Eléments
Un élément peut contenir d’autres éléments, du texte ou être vide.
<message> … </message>
Attributs
Les attributs apportent des informations supplémentaires sur un élément.
<img src="[Link]" />
Entités
Permettent de remplacer les caractères spéciaux dans un document XML. Elle peuvent être
utilisé pour remplacer des blocks répétitifs dans un document XML.
< < less than
PCDATA
Comme « Parsed Character DATA » : du texte qu’on met généralement dans une balise.
Celui-ci est analysé par le parseur XML.
CDATA
Comme « Character DATA » : du texte qu’on met généralement dans une balise. Celui-ci
n’est pas analysé, il peut donc contenir des caractères spéciaux…
25/11/2020 [Link]@[Link] 108
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration d’un élément
Syntaxe :
<!ELEMENT nom-élément categorie> ou <!ELEMENT nom-élément (contenu-élément)>
• Elément avec n’importe quel contenu
<!ELEMENT nom-élément ANY>
Exemple : <!ELEMENT p ANY>
Utilisation : <p>blaba<c /></p>
• Elément avec contenu non parsé
<!ELEMENT nom-élément (#CDATA)>
Exemple : <!ELEMENT sup (#CDATA)> Utilisation : <sup> < </sup>
25/11/2020 [Link]@[Link] 109
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Syntaxe d’une déclaration externe
Syntaxe :
<!DOCTYPE élément-racine SYSTEM "nom-fichier">
Exemple:
• Fichier XML ([Link])
<?xml version="1.0">
<!DOCTYPE message SYSTEM "[Link]">
<message>
<de>Chougdali</de>
<a>MIAM</a>
<corps> Bonjour mes étudiants</corps>
</message>
• Fichier DTD ([Link])
<!ELEMENT message (de, a, corps)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT a (#PCDATA)>
<!ELEMENT corps (#PCDATA)>
25/11/2020 [Link]@[Link] 110
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration d’un élément
Syntaxe :
<!ELEMENT nom-élément categorie> ou <!ELEMENT nom-élément (contenu-élément)>
• Elément vide
<!ELEMENT nom-élément EMPTY>
Exemple : <!ELEMENT br EMPTY> Utilisation : <br />
• Elément avec contenu parsé
<!ELEMENT nom-élément (#PCDATA)>
Exemple : <!ELEMENT de (#PCDATA)> Utilisation : <de> chougdali </de>
25/11/2020 [Link]@[Link] 111
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration d’un élément
Syntaxe :
<!ELEMENT nom-élément categorie> ou <!ELEMENT nom-élément (contenu-élément)>
• Elément avec enfant (s)
<!ELEMENT nom-élément (nom-enfant)>
<!ELEMENT nom-élément (enfant1,enfant2)>
Exemple : <!ELEMENT date (jour,mois,annee)>
Utilisation :
<date>
<jour>..</jour>
<mois>..</mois>
<annee>..</annee>
</date>
RQ:
Les éléments enfants doivent être déclarés à leur tour.
25/11/2020 [Link]@[Link] 112
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Occurrences d’un élément
Cas 1:
<!ELEMENT nom-élément (nom-enfant)>
Dans cet exemple l’élément « nom-enfant » doit figurer une et une seule fois dans l’élément
« nom-élément ».
Cas 2:
<!ELEMENT nom-élément (enfant1,enfant2)>
Dans cet exemple les éléments « enfant1 » et « enfant2 » doivent figurer dans cet ordre une et
une seule fois dans l’élément « nom-élément ».
Cas 3:
<!ELEMENT nom-élément (enfant1?)>
Dans ce cas l’élément enfant peut figurer zéro ou une fois dans l’élément père.
Exemple : <!ELEMENT article (date?)>
25/11/2020 [Link]@[Link] 113
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Occurrences d’un élément
Cas 4:
<!ELEMENT nom-élément (enfant1+)>
Dans ce cas l’élément enfant peut figurer une ou plusieurs fois dans l’élément père.
Exemple : <!ELEMENT fournisseurs (societe+)>
Cas 5:
<!ELEMENT nom-élément (enfant1*)>
Dans ce cas l’élément enfant peut figurer zéro ou plusieurs fois dans l’élément père.
Exemple : <!ELEMENT news (article*)>
Cas 6:
<!ELEMENT nom-élément (enfant1 | enfant2)>
Dans ce cas l’élément ne peut contenir que les deux éléments enfants (choix parmi plusieurs)
Exemple : <!ELEMENT logement (appart|villa)*> on peut mettre zéro ou plusieurs « appart » ou
« villa » dans l’élément « logement »
25/11/2020 [Link]@[Link] 114
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration des attributs
Les attributs sont déclarés à l’aide de : ATTLIST
• Syntaxe :
<!ATTLIST nom-élément
nom-attribut
type-attribut
valeur-par-defaut>
Exemple1 :
<!ELEMENT trait EMPTY>
<!ATTLIST trait couleur CDATA "noir">
Utilisation : <trait couleur="vert" /><trait />
Exemple 2:
<!ATTLIST etudiant CIN CDATA #REQUIRED>
Utilisation : <etudiant CIN="K376563" /> …<etudiant />
25/11/2020 [Link]@[Link] 115
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration des attributs
Les attributs sont déclarés à l’aide de : ATTLIST
• Syntaxe :
<!ATTLIST nom-élément
nom-attribut
type-attribut
valeur-par-defaut>
Exemple3 :
<!ELEMENT contact EMPTY>
<!ATTLIST contact fax CDATA #IMPLIED>
Utilisation : <contact fax="022222222"> <contact />
Exemple 4:
<!ATTLIST from societe CDATA #FIXED "IBM">
Utilisation : <from societe="IBM" /> …<from />
25/11/2020 [Link]@[Link] 116
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration des attributs
Les attributs sont déclarés à l’aide de : ATTLIST
• Syntaxe :
<!ATTLIST nom-élément
nom-attribut
type-attribut
valeur-par-defaut>
Exemple5 :
<!ATTLIST forme
type
(carre|rectangle|cercle)
"carre" >
Utilisation : <forme type="cercle" /> <forme />
25/11/2020 [Link]@[Link] 117
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Déclaration des entités
Les entités sont utilisés pour définir des raccourcis à du texte standard ou à des caractères
spéciaux.
Syntaxe: <!ENTITY nom "valeur">
La déclaration peut être interne ou externe
• Interne :
Exemple : <!ENTITY auteur "Ali Chaouni">
Utilisation : <auteur>&auteur;</auteur>
• Externe :
Exemple : <!ENTITY auteur SYSTEM "[Link]
Utilisation : <auteur>&auteur;</auteur>
25/11/2020 [Link]@[Link] 118
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
DTD : Exercice d’application
Description d’une bibliothèque:
La biblio contient un ensemble de livre. Chaque livre appartient à une catégorie. Il est caractérisé
par :
• Un ou plusieurs auteurs :
Nom
Identificateurs des publications de l’auteur
• Un titre
Langue de l’ouvrage (fr, en, ar ou es)
Identificateur unique
• Un éditeur
• Un résumé
• La date de publication
Ecrire la DTD permettant de valider ce document
25/11/2020 [Link]@[Link] 119
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Schéma XML
Un schéma XML est un document XML avec extension xsd.
La balise d’ouverture est de la forme suivante <xs:element name=" nomElement">.
La balise de fermeture est de la forme suivante </xs:element>.
Un schéma consiste à valider un document XML.
Il définit la structure du document avec une liste d'éléments et d'attributs autorisés.
Un document XML bien formé et respectant les exigences d’un schéma XML dit Valide.
25/11/2020 [Link]@[Link] 120
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Schéma XML
Intérêt d’un schéma:
Un schéma XML limite les balises et les attributs utilisables pour une application donnée.
Avec un schéma XML, des groupes différents peuvent se mettre d’accord sur un format d’échange
de données.
Avec un schéma XML, une application peut vérifier la validité des données qu’elle reçoit.
L’avantage du schéma XML par rapport au DTD c’est que le schéma XML utilise XML comme
langage de programmation.
25/11/2020 [Link]@[Link] 121
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Schéma XML: Exemple Élément racine
Attacher un schéma XML [Link]
25/11/2020 [Link]@[Link] 122
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Schéma XML: Exemple: fichier [Link]
25/11/2020 [Link]@[Link] 123
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Schéma XML: Exemple: fichier [Link]
25/11/2020 [Link]@[Link] 124
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Schéma XML: Exemple: fichier [Link]
25/11/2020 [Link]@[Link] 125
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Atelier
On reprend l’énoncés de l’atelier traité auparavant (partie JSON) et sachant que le web service
gratuit peut fournir une réponse format XML sous l’url:
[Link]
Développer une application mobile permet l’affichage du pays, température, pression et l’humidité
d’une locations choisi par l’utilisateur.
25/11/2020 [Link]@[Link] 126
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Atelier
Réponse format XML: [Link]
25/11/2020 [Link]@[Link] 127
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Atelier
Etape 1: Création de l’interface graphique
25/11/2020 [Link]@[Link] 128
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Atelier
Etape 2: Création des méthodes pour lire et parser le fichier XML:
Les getters et les setters
25/11/2020 [Link]@[Link] 129
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Etape 2: Création des méthodes pour lire et parser le fichier XML:
25/11/2020 [Link]@[Link] 130
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Etape 2: Création des méthodes pour lire et parser le fichier XML:
25/11/2020 [Link]@[Link] 131
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Etape 3: développer l’activité principale
25/11/2020 [Link]@[Link] 132
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Etape 3: développer l’activité principale
25/11/2020 [Link]@[Link] 133
Chapitre2: Parseur JSON et XML
Atelier 11:Parser un document XML en Android
Etape 4: Définir la permission d’ accès à l’Internet sur [Link]
25/11/2020 [Link]@[Link] 134
Chapitre3: Utilisation des capteurs
Atelier 12:Utilisation du caméra en Android
Presque 100% des applications android intègrent des images et des photos.
Android offre plusieurs widgets permettant l’ajout et la personnalisation des images et des photo.
Aussi android permet l’ajout des photos et des images capturés par le caméra du device à
l’application en temps réel.
Android offre l’API Caméra utilisable directement pour ajouter des images à l’application.
Android utilise le principe d’ intent pour utiliser le caméra du device.
Les images capturées sont soit affichées directement sur les écrans et/ou stockées sur une mémoire
interne ou externe.
25/11/2020 [Link]@[Link] 135
Chapitre3: Utilisation des capteurs
Atelier 12:Utilisation du caméra en Android
L’atelier consiste à réaliser une application android avec l’écran suivant:
• Le clique sur l’image (appareil photo) active le caméra
du device.
• L’image capturée doit être afficher sur l’écran de
l’application pour obtenir l’écran suivant:
25/11/2020 [Link]@[Link] 136
Chapitre3: Utilisation des capteurs
Atelier 12:Utilisation du caméra en Android
Etape 1: Création du layout principal de l’application
25/11/2020 [Link]@[Link] 137
Chapitre3: Utilisation des capteurs
Atelier 12:Utilisation du caméra en Android
Etape 2: Dévloppement de l’activité
25/11/2020 [Link]@[Link] 138
Chapitre3: Utilisation des capteurs
Atelier 12:Utilisation du caméra en Android
MediaStore.ACTION_IMAGE_CAPTURE: permet l’utilisation du caméra du device pour
prendre une photo.
MediaStore.ACTION_VIDEO_CAPTURE: permet l’utilisation du caméra du device pour
prendre une vidéo.
MediaStore.ACTION_IMAGE_CAPTURE_SECURE: retourne une image capturée par caméra
d’un device sécurisé.
[Link]: permet de définir l’orientation de l’écran.
MediaStore.EXTRA_SIZE_LIMIT: spécifier la taille limite de l’image ou vidéo capturée
25/11/2020 [Link]@[Link] 139
Chapitre3: Utilisation des capteurs
Atelier 13:Stockage interne des données en Android
Android offre plusieurs modes de stockage de données:
• Stockage interne.
• Stockage externe.
• SQLite
• Stockage via un réseau
Le stockage interne c’est le stockage des données (texte, image, son, video,…) dans la mémoire du
terminal android.
Dans l’exemple qui suit nous traitons la manière de stocker un fichier texte dans la mémoire
interne du terminal.
Le sauvegarde et la lecture d’un contenu de fichier sont assurés par les streams de communication
FileOutputStream et FileInputStream.
25/11/2020 [Link]@[Link] 140
Chapitre3: Utilisation des capteurs
Atelier 13:Stockage interne des données en Android
L’atelier consiste à réaliser une application qui permet de sauvegarder un texte saisi par l’utilisateur
sous forme d’un fichier texte dans la mémoire interne du terminal Android et par la suite la lecture de
ce fichier. L’interface principale de l’application est de la forme suivante:
25/11/2020 [Link]@[Link] 141
Chapitre3: Utilisation des capteurs
Atelier 13:Stockage interne des données en Android
Etape 2: Programmation de l’activité principale
La méthode sauvegarder:
25/11/2020 [Link]@[Link] 142
Chapitre3: Utilisation des capteurs
Atelier 13:Stockage interne des données en Android
Etape 2: Programmation de l’activité principale
La méthode lire:
25/11/2020 [Link]@[Link] 143
Chapitre2: Parseur JSON et XML
Atelier 13:Stockage interne des données en Android
Méthode Description
FileOutputStream (File f, boolean b) Un constructeur permet la création d’un stream de sortie pour écrire
dans un fichier
write (byte[] buffer, int byteOffset, Écrire un nombre de bytes à partir d’un tableau en commençant de la
int byteCount) position Offset du stream.
available() Retourne le nombre de bytes qu’on peut lire.
read (byte[] buffer, int byteOffset, Lire un nombre de bytes à partir d’un tableau en commençant de la
int byteCount) position Offset du stream.
25/11/2020 [Link]@[Link] 144
Chapitre3: Utilisation des capteurs
Atelier 14:AudioManger en Android
Android offre via la classe AudioManger plusieurs méthodes pour contrôler le profile audio de
votre terminal android.
Configurer le profile audio = mode sonnerie, mode vibreur ou mode silencieux.
La configuration du mode est assurée par la méthode setRingerMode de la classe AudioManger.
Il existe 3 modes:
• RINGER_MODE_VIBRATE: mode vibreur.
• RINGER_MODE_NORMAL: mode normal.
• RINGER_MODE_SILENT : mode silencieux.
AudioManger offre la possibilité de contrôler le volume de la sonnerie.
25/11/2020 [Link]@[Link] 145
Chapitre3: Utilisation des capteurs
Atelier 14:AudioManger en Android
L’atelier consiste à réaliser une application android permet de contrôler le profile audio de votre
terminal Android, l’application consiste à changer le profile audio (Normal, Vibreur et Silencieux) via
des buttons et à chaque fois on peut afficher le mode choisi. L’interface principale de l’application est
la suivante:
25/11/2020 [Link]@[Link] 146
Chapitre3: Utilisation des capteurs
Atelier 14:AudioManger en Android
Etape 2: Programmation de l’activité principale
25/11/2020 [Link]@[Link] 147
Chapitre3: Utilisation des capteurs
Atelier 14:AudioManger en Android
Etape 2: Programmation de l’activité principale
25/11/2020 [Link]@[Link] 148
Chapitre3: Utilisation des capteurs
Atelier 14:AudioManger en Android
Etape 2: Programmation de l’activité principale
25/11/2020 [Link]@[Link] 149
Chapitre2: Parseur JSON et XML
Atelier 14:AudioManger en Android
Méthode Description
adjustVolume (int direction, int flags) Consiste à ajuster le volume d’un stream audio
getMode() Retourne le mode active
getStreamMaxVolume (int streamType) Retourne le volume maximal d’un stream donné.
getStreamVolume (int streamType) Retourne le volume courant d’un stream donné. .
25/11/2020 [Link]@[Link] 150
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
L’application mobile doit offre des outils de communication avec le milieu extérieur tels que la
possibilité d’envoyer un SMS, un E-mail, et passer une communication.
L’SMS () reste une manière de communication rapide et efficace.
Android offre plusieurs API qui facilite la programmation de l’envoi des SMS, des E-mail ou
passer une appel téléphonique à partir d’une application mobile.
Il existe deux manières pour envoyer un SMS en Android:
• L’utilisation de l’API SmsManager.
• L’utilisation Built-in Intent.
25/11/2020 [Link]@[Link] 151
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
1. Utilisation de l’API SmsManager:
L’atelier consiste à réaliser une application mobile permet l’envoi d’un SMS.
L’interface principale de l’application et la suivante:
25/11/2020 [Link]@[Link] 152
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
1. Utilisation de l’API SmsManager:
Programmation de l’activité principale:
25/11/2020 [Link]@[Link] 153
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
1. Utilisation de l’API SmsManager:
Programmation de l’activité principale:
25/11/2020 [Link]@[Link] 154
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
1. Utilisation de l’API SmsManager:
Définition de la permission pour envoyer un SMS
sur le fichier AndroidManifest:
25/11/2020 [Link]@[Link] 155
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
2. Utilisation de Built-in Intent:
L’atelier consiste à développer une application mobile permet l’envoi d’un SMS on utilisant le
principe de l’Intent, l’application est menu d’un bouton qui active tout simplement le service d’envoi
des SMS du device:
25/11/2020 [Link]@[Link] 156
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
2. Utilisation de Built-in Intent:
25/11/2020 [Link]@[Link] 157
Chapitre3: Utilisation des capteurs
Atelier 15:Envoyer un SMS en Android
2. Utilisation de Built-in Intent:
25/11/2020 [Link]@[Link] 158
Chapitre3: Utilisation des capteurs
Atelier 16:Envoyer un E-mail en Android
Le concept d’ Intent est très utilisé en Android, permet aussi l’envoi des E-mails.
Le programmeur peut développer le client email, comme il peut utiliser des clients email existants
comme Gmail, Yahoo, …
Dans ce cas le programmeur est appelé a développer une application qui utilise le client email du
device.
L’atelier consiste à développer une application mobile permet l’envoi d’un E-mail à un ou
plusieurs destinataires.
L’atelier permet aussi d’apprendre la configuration des paramètres de l’E-mail.
Notre application utilise un client E-mail du device tel que Gmail.
25/11/2020 [Link]@[Link] 159
Chapitre3: Utilisation des capteurs
Atelier 16:Envoyer un E-mail en Android
L’interface graphique de l’application est la suivante:
25/11/2020 [Link]@[Link] 160
Chapitre3: Utilisation des capteurs
Atelier 16:Envoyer un E-mail en Android
Développer l’activité principale:
25/11/2020 [Link]@[Link] 161
Chapitre3: Utilisation des capteurs
Atelier 16:Envoyer un E-mail en Android
Développer l’activité principale:
25/11/2020 [Link]@[Link] 162
Chapitre3: Utilisation des capteurs
Atelier 17: Passer une appel téléphonique en Android
Android offre la possibilité de passer une appelle téléphonique à partir d’un clique sur un widget
d’une application mobile.
Passer une appelle téléphonique à partir d’une application mobile facilite l’utilisation de
l’application mobile.
Passer une appelle téléphonique demande la définition des permissions sur le fichier
AndroidManifest de l’application.
Android utilise le principe de l’Intent pour passer une appelle téléphonique.
L’atelier consiste à développer une application mobile permet de passer une appelle téléphonique
à partir d’une clique sur un bouton.
25/11/2020 [Link]@[Link] 163
Chapitre3: Utilisation des capteurs
Atelier 17: Passer une appel téléphonique en Android
• Interface graphique de l’application:
25/11/2020 [Link]@[Link] 164
Chapitre3: Utilisation des capteurs
Atelier 17: Passer une appel téléphonique en Android
• Développement de l’activité principale:
25/11/2020 [Link]@[Link] 165
Chapitre3: Utilisation des capteurs
Atelier 17: Passer une appel téléphonique en Android
• Développement de l’activité principale:
25/11/2020 [Link]@[Link] 166
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
• Android offre la possibilité de capter, enregistrer et réutiliser un contenu audio ou
video.
• Il existe plusieurs manières pour manipuler un contenu audio ou video en android, la
plus populaire est l’utilisation d’un objet de la classe MediaRecorder.
• Pour utiliser la classe MediaRecorder il faut configurer sur une instance de cette classe:
La source de l’audio ou video par la méthode setAudioSource() ou setVideoSource().
Le format du sortie et de encoding par la méthode setOutputForma() et setAudioEncoder() et
setVideoEncoder().
Définir le fichier de sortie par la méthode setOutputFile().
25/11/2020 [Link]@[Link] 167
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
• Pour démarrer l’enregistrement on utilise les méthodes prepare() et start().
• Pour arrêter l’enregistrement on utilise les méthodes stop() et release().
• Généralement on utilise la mémoire interne pour stocker le contenu Audio ou Video,
alors on déclare le fichier de sortie comme suit:
• Pour réutiliser le contenu Audio ou video on utilise un objet de la classe MediaPlayer.
• Le chemin du fichier qui présente le contenu Audio ou Video est donné par la méthode
setDataSource().
• On lance le contenu Audio ou Video via les méthodes prepare() et start().
25/11/2020 [Link]@[Link] 168
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
25/11/2020 [Link]@[Link] 169
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
25/11/2020 [Link]@[Link] 170
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
25/11/2020 [Link]@[Link] 171
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
25/11/2020 [Link]@[Link] 172
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
25/11/2020 [Link]@[Link] 173
Chapitre3: Utilisation des capteurs
Atelier 18: Capture Audio en Android
25/11/2020 [Link]@[Link] 174
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
• Bluetooth reste la technologie efficace pour transférer et recevoir les données.
• Android offre un Framework Bluetooth permet l’échange de données entre deux
diveces.
• L’API Bluetooth offre les fonctions suivantes:
Activer et désactiver le Bluetooth.
Chercher les terminaux actifs et avoir la liste de ces diveces.
Se connecter à autre terminal.
• L’API Bluetooth s’articule sur la classe BluetoothAdapter.
• Pour activer le Bluetooth de votre terminal on utilise le principe des Intent.
25/11/2020 [Link]@[Link] 175
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
• Pour avoir la liste des terminaux actifs on utilise la méthode getBondedDevices()
appliqué sur un objet de type BluetoothAdapter .
• Autre méthodes utiles:
Méthode Description
enable() Permet d’activer un objet de type BluetoothAdapter si il n’est pas actif.
isEnabled() Retourne true si l’adapter est actif.
disable() Permet de désactiver l’adapter.
getName() Retourne le nom de l’adapter.
setName(String name) Renommer un adapter Bluetooth
getState() Retourne l’état d’un adapter Bluetooth.
25/11/2020 [Link]@[Link] 176
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
25/11/2020 [Link]@[Link] 177
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
25/11/2020 [Link]@[Link] 178
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
25/11/2020 [Link]@[Link] 179
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
25/11/2020 [Link]@[Link] 180
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
25/11/2020 [Link]@[Link] 181
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
25/11/2020 [Link]@[Link] 182
Chapitre3: Utilisation des capteurs
Atelier 19: Bluetooth en Android
25/11/2020 [Link]@[Link] 183
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
• Android offre une classe nommée MediaPlayer permet le contrôle du playback d’un
audio ou d’un video.
• Pour utiliser les fonctionalités de la classe MediaPlayer il faut créer un objet de type
MediaPlayer via la méthode statique create () :
• raw c’est un dossier à créer dans le dossier src du projet et comporte le fichier audio
qui porte le nom song ici.
• La classe comporte plusieurs méthodes permettant la manipulation du fichier tels que:
25/11/2020 [Link]@[Link] 184
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
• Autre méthodes de la classe MediaPlayer:
Méthode Description
reset() Relecture du passage audio ou video
isPlaying() Retourne true si la lecture du passage audio ou video
est encore.
seekTo(positon) Lire un passage audio ou video à partir d’une
position donnée.
getCurrentDuration() Retourne la position courante du passage en
millisecondes
getDuration() Retourne la durée totale du passage en millisecondes
setVolume(float leftVolume, float rightVolume) Permet de régler le volume d’un passage
selectTrack(int index) Permet la sélection d’un passage parmi plusieurs
getTrackInfo() Récupère sous forme d’un tableau les informations
d’un passage.
25/11/2020 [Link]@[Link] 185
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
• Créer un dossier nommée raw dans le dossier res du projet,
• Le dossier raw comportera les fichiers Audio ou bien Video
25/11/2020 [Link]@[Link] 186
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
25/11/2020 [Link]@[Link] 187
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
25/11/2020 [Link]@[Link] 188
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
25/11/2020 [Link]@[Link] 189
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
25/11/2020 [Link]@[Link] 190
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
25/11/2020 [Link]@[Link] 191
Chapitre3: Utilisation des capteurs
Atelier 20: MediaPlayer en Android
25/11/2020 [Link]@[Link] 192
Chapitre4: Le partage d’un contenu en Android
Atelier 21: Integration SDK Facebook en Android
• Le partage d’un contenu à partir d’une application mobile sur les réseaux sociaux est
un moyen de la promotion de l’application.
• Une application mobile qui offre le partage d’un contenu est plus rentable.
• Android permet à une application de se connecter à la plateforme Facebook pour
partager des données.
• Il existe deux manière pour se connecter à la plateforme Facebook:
On utilise le Facebook SDK.
On utilise Intent Share.
• La méthode basée sur l’Intent Share est plus générale: commune pour touts les réseaux
sociaux.
25/11/2020 [Link]@[Link] 193
Chapitre4: Le partage d’un contenu en Android
Atelier 21: Integration SDK Facebook en Android
La méthode basée sur Intent Share:
• Intent Share consiste à partager les données entre applications.
• Cette méthode ne demande pas l’intégration du SDK Facebook.
• Elle fait appel à l’application Facebook et passe les données à partager.
• Android offre un Intent pour partager des données entre applications:
• La création de l’Intent:
• La configuration et le lancement de l’activité:
25/11/2020 [Link]@[Link] 194
Chapitre4: Le partage d’un contenu en Android
Atelier 21: Integration SDK Facebook en Android
La méthode basée sur Intent Share:
• Autre méthodes utiles :
Méthode Description
putExtra(String name, int value)
Permet d’ajouter des données à l’intent.
addCategory(String category)
Permet d’ajouter des catégories à l’intent
getAction() Avoir l’action de l’intent.
getCategories() Avoir une liste des catégories de l’intent.
25/11/2020 [Link]@[Link] 195
Chapitre4: Le partage d’un contenu en Android
Atelier 21: Integration SDK Facebook en Android
La méthode basée sur Intent Share:
25/11/2020 [Link]@[Link] 196
Chapitre4: Le partage d’un contenu en Android
Atelier 21: Integration SDK Facebook en Android
La méthode basée sur Intent Share:
25/11/2020 [Link]@[Link] 197
Chapitre4: Le partage d’un contenu en Android
Atelier 21: Integration SDK Facebook en Android
La méthode basée sur Intent Share:
25/11/2020 [Link]@[Link] 198
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
• L’intégration de la carte dans l’application mobile donne la possibilité de montrer des
points d’intérêt.
• Identifier des routes sur la carte.
• Personnaliser l’affichage sur la carte.
• Google donne la possibilité d’intégrer une Map dans votre projet Android.
• Google offre le choix de plusieurs types des cartes.
• API Google Map offre plusieurs fonctions tel que: l’ajout des markers, identification
des points, tracer un chemin, activer ou désactiver le zoom, …
• Pour utiliser GoogleMap il faut créer un objet de type GoogleMap:
25/11/2020 [Link]@[Link] 199
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
• On utilise le widget fragment pour afficher une carte:
• L’intégration de la carte demande une reconfiguration du fichier [Link]
via la définition des permissions et l’ajout de la valeur du clé.
• On peut ajouter des markers sur la carte:
• On peut changer le type de la carte par la méthode setMapType():
25/11/2020 [Link]@[Link] 200
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
• On peut activer ou désactiver le Zoom sur la carte :
• L’API GoogleMap offre encore des autres fonctions:
Méthode Description
addCircle() Tracer un cercle sur la carte.
addPolygon() Tracer un polygone sur la carte.
addTileOverlay() Tracer un carré plein sur la carte.
clear() Supprime touts les types des éléments posés sur la carte.
getMyLocation() Retourne la position actuelle de l’utilisateur.
snapshot() Permet de faire une operation d’imprime écran.
25/11/2020 [Link]@[Link] 201
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
• L’atelier consiste intégrer une carte et ajouter un marquer.
Etape1: Intégrer google maps à l’Application.
Etape 2: Développer l’application:
Layout
Activity
[Link].
Executer l’application sur un terminal.
25/11/2020 [Link]@[Link] 202
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape1: Intégrer google maps à l’Application:
1. Télécharger la bibliothèque google-play-services.
2. Installer Google APIs SDK:
25/11/2020 [Link]@[Link] 203
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape1: Intégrer google maps à l’Application:
3. Importer google-play-services à Eclipse:
File + import + Android + Existing Android Code Into Workspace + définir l’emplacement
du package google-play-services.
4. Configurer votre projet avec SDK: Clique droit sur le projet + Properties + add +
choisir google-play-services.
25/11/2020 [Link]@[Link] 204
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape1: Intégrer google maps à l’Application:
5. Obtenir le clé de l’API (API Key):
Obtenir le certificat clé (certificate key): ouvrir invite commande + se position sur le
dossier bin de votre jre + exécuter la commande suivante:
Le chemin de votre [Link] :Window + preferences + android + build
25/11/2020 [Link]@[Link] 205
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape1: Intégrer google maps à l’Application:
5. Obtenir le clé de l’API (API Key):
Obtenir le certificat clé (certificate key): ouvrir invite commande + se position sur le
dossier bin de votre jre + exécuter la commande suivante:
Copier Le SHA1 qui présente certificate key.
25/11/2020 [Link]@[Link] 206
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape1: Intégrer google maps à l’Application:
5. Obtenir le clé de l’API (API Key):
Obtenir API Key a partir du Google console: [Link]
Copier le nom du
Copier SHA1 déjà
package du projet
enregistrer
indique sur le fichier
[Link]
Copier la clé généré qu’est nécessaire pour l’étape développement.
25/11/2020 [Link]@[Link] 207
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape 2: développement de l’Application
25/11/2020 [Link]@[Link] 208
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape 2: développement de l’Application
25/11/2020 [Link]@[Link] 209
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape 2: développement de l’Application
25/11/2020 [Link]@[Link] 210
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape 2: développement de l’Application
25/11/2020 [Link]@[Link] 211
Chapitre5: La géolocalisation
Atelier 22: Google Maps en Android
Etape 3: Exécution de l’application
25/11/2020 [Link]@[Link] 212
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Android offre plusieurs manières pour réaliser des animations, la plus utilisée est basé
sur la classe AnimationUtils.
Pour programmer une animation en android il faut avoir un objet de type Animation:
Une animation est lancée sur un widget par la syntaxe:
Généralement les formes d’animation tels que le zoom, la rotation, le décalage, … sont
définies via un fichier XML dans un dossier anim défini dans le dossier res du projet.
25/11/2020 [Link]@[Link] 213
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
Méthode Description
start() Lancer une animation
setDuration( long duree) Configurer la durée de l’Animation
getDuration() Avoir la durée de l’animation.
end() Terminer une animation.
cancel() Stopper une animation.
25/11/2020 [Link]@[Link] 214
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
25/11/2020 [Link]@[Link] 215
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
25/11/2020 [Link]@[Link] 216
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
25/11/2020 [Link]@[Link] 217
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
25/11/2020 [Link]@[Link] 218
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
25/11/2020 [Link]@[Link] 219
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
25/11/2020 [Link]@[Link] 220
Chapitre6: Animation en Android
Atelier 23: Animation en Android
Autre méthodes de la classe Animation:
25/11/2020 [Link]@[Link] 221
Chapitre7: Copier et coller un contenu en Android
Atelier 24: Clipboard en Android
Android offre un outil pour copier et coller touts les formes de données.
Les données peuvent être un texte, image, ….
Android offre une bibliothèque basée sur les classes ClipboardManager, ClipData et
[Link] nécessaires pour Copier/Coller des données.
Pour utiliser les fonctionalités il faut instancier un objet de type ClipboardManager.
Pour copier des données, on utilise un objet de type ClipData
25/11/2020 [Link]@[Link] 222
Chapitre7: Copier et coller un contenu en Android
Atelier 24: Clipboard en Android
Pour coller les données:
Autres méthodes:
Méthode Description
getPrimaryClip() Retourne le clip primaire courant
hasPrimaryClip() Retourne true si le clip primaire courant occupe le clipboard
setText(CharSequence s) Mettre directement un texte dans un clipboard.
getText() Récupérer le texte d’un clipboard.
25/11/2020 [Link]@[Link] 223
Chapitre7: Copier et coller un contenu en Android
Atelier 24: Clipboard en Android
25/11/2020 [Link]@[Link] 224
Chapitre7: Copier et coller un contenu en Android
Atelier 24: Clipboard en Android
25/11/2020 [Link]@[Link] 225
Chapitre7: Copier et coller un contenu en Android
Atelier 24: Clipboard en Android
25/11/2020 [Link]@[Link] 226
Chapitre7: Copier et coller un contenu en Android
Atelier 24: Clipboard en Android
25/11/2020 [Link]@[Link] 227
Chapitre7: Copier et coller un contenu en Android
Atelier 24: Clipboard en Android
25/11/2020 [Link]@[Link] 228
Chapitre8: La persistance des données - Firebase
Atelier 25:
Firebase est une base de données temps réel et noSQL JSON database.
25/11/2020 [Link]@[Link] 229
Chapitre8: La persistance des données - Firebase
Atelier 25:
Étape 1: Configurer Firebase
• Loger via un compte Google sur [Link]
• Ajouter un nouveau projet:
25/11/2020 [Link]@[Link] 230
Chapitre8: La persistance des données - Firebase
Atelier 25:
Étape 1: Configurer Firebase
• Ajouter un nouveau projet:
25/11/2020 [Link]@[Link] 231
Chapitre8: La persistance des données - Firebase
Atelier 25:
Étape 1: Configurer Firebase
• Ajouter un nouveau projet:
25/11/2020 [Link]@[Link] 232
Chapitre8: La persistance des données - Firebase
Atelier 25:
Étape 1: Configurer Firebase
• Ajouter un nouveau projet:
25/11/2020 [Link]@[Link] 233