TP ANDROID LES BASES. Concepts objets Soit la hiérarchie de classes présentées en cours:



Documents pareils
TP2 : Client d une BDD SqlServer

TP SIN Programmation sur androïde Support : eclipse

Créer un modèle Impress

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Les fondamentaux du développement d applications Java

1.3 Gestion d'une application

TD/TP 1 Introduction au SDK d Android

Parcours FOAD Formation EXCEL 2010

TP au menu «UI ANDROID»

Guide pour la réalisation d'un document avec Open Office Writer 2.2

Android 4 Les fondamentaux du développement d'applications Java

Effectuer des changements par lots avec BCDI abonnement

Un exemple avec WORKSPACE d'interwrite

Affectation standard Affectation modifiée (exemple)

Utilisation de l éditeur.

ENT Espace de stockage

Programmation Objet - Cours II

Utilisation du logiciel GALAAD

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Groupe Eyrolles, 2003, ISBN : X

Java 7 Les fondamentaux du langage Java

Installation et prise en main

Comment accéder à d Internet Explorer

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

Tutorial pour une application simple

INTERWRITE Workspace

TUTORIEL : Formulaire sur Google : Saisie des réponses questionnaires comptoir Mise en place de questionnaires à distance

Réaliser un PUBLIPOSTAGE

Cours Excel : les bases (bases, texte)

Exporter des écritures. Importer des écritures. Depuis EBP Comptabilité.

Guide utilisateur Archivage intermédiaire Messagerie. Enterprise Connect pour Outlook 2010 EC V 1.0

Astuce N 1 : Consulter mon catalogue articles en mode liste puis en mode fiche : recherche du prix d'une référence, consultation du stock

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Interfaces graphiques avec l API Swing

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

Guide Utilisateur. Les communications unifiées au service de la performance opérationnelle. sfrbusinessteam.fr. Faire équipe avec vous

Keyyo Unify Application de téléphonie intégrée pour Salesforce

Table des matières. Partie I Concepts de base Préface... VII

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

PRESENTATION DU LOGICIEL

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

MANUEL TBI - INTERWRITE

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

I La création d'un compte de messagerie Gmail.

TUTORIEL IMPRESS. Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer»

Edutab. gestion centralisée de tablettes Android

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

Chapitre 3 : outil «Documents»

Programmation par les Objets en Java

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

OpenOffice.org Présentation - Débuter. Distribué par Le projet OpenOffice.org

NOTICE D' UTILISATION CAMWORKS FRAISAGE. Luc Vallée Lycée Blaise Pascal Segré

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Sauvegarde Android

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

TP1 : Initiation à Java et Eclipse

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

Gestion des différentes tailles d écran

Approche Contract First

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Le service d'accès à distance aux bases de données du SCD de Paris 10 Nanterre

@telier d'initiation

Seafile, pour simplifier l'accès à ses fichiers, les partager et les synchroniser

Introduction à Adobe Illustrator pour la cartographie et la mise en page

Silhouette Studio Leçon N 2

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Chapitre 1 Retour en arrière

Guide d installation

TRAVAUX DIRIGES D'INFORMATIQUE INITIATION A LA MANIPULATION DE WINDOWS 98

Tutoriel Android - TP de prise en main

31. OOo Draw Réglages propres à Draw

Correction des Travaux Pratiques Organiser son espace de travail

Freeway 7. Nouvelles fonctionnalités

Installation locale de JOOMLA SEPIA

Cours de D.A.O. Mécanique

Utiliser des logiciels Windows sous Linux Ubuntu

Par Daniel FAIVRE WebMapper ... Publication de cartes pour Internet avec ArcGis

Programmer en JAVA. par Tama

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

GUIDE RAPIDE EXPERT espace de partage

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Didacticiel de mise à jour Web

Héritage presque multiple en Java (1/2)

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

TP 1 : prise en main de Windows. TP 1 : prise en main de Windows

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

Importation des données dans Open Office Base

GesTab. Gestion centralisée de tablettes Android

Contenu Bienvenue sur SiteMaker L 'environnement d'édition de SiteMaker

Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online

Introduction à Expression Web 2

Transcription:

Préambule Matériel utilisé : tablette acer iconia A1 810 resolution 768x1024 (mdpi) Logiciels : Bundle Eclipse (pour le designer choisir 7'' WSVGA par exemple) et Genymotion (modifier la résolution : 768x1024 160 mdpi Premier projet A l'aide de l'assistant créez un projet dans votre répertoire de travail. Rajoutez un bouton et un Textview avec l'outil Graphical layout. Testez avec GenyMotion. Faire une rotation de l'écran. Rajouter une balise android:id dans le relativelayout proposé par défaut et donnez un identifiant.dans votre code Java modifier le texte de votre TextView. Testez.Créez un bouton de manière dynamique et rajoutez le à la vue (code Java). Testez avec GenyMotion. Créer un dossier layout-land dans le répertoire res. Copiez le layout précédent dans le dossier. Modifier le layout en rajoutant des éléments graphiques de votre choix. Testez avec GenyMotion. Faire une rotation de l'écran. Méthode call-back d'une activité Créer un nouveau projet. Rajoutez une check-box. Chercher la liste des méthodes de callback sur le web : site android developper. Sur le principe du transparent de cours, rajoutez les méthodes à votre activité. Chaque méthode de call-back incluera une trace de type Log.i(...). Lancez l'activité avec l'émulateur inclus en Eclipse. Ouvrez la perspective DDMS. Examiner votre LogCat. Ouvrez un terminal de commande. Connectez vous en telnet à l'émulateur : telnet localhost 5554 Simulez un appel entrant.tapez help pour avoir la liste des commandes : exemple de simulation d'appel : gsm call 060505050505 Observez le cycle d'activité Cliquez sur la touche de l'émulateur back. Observez le cycle d'activité. Cliquez sur la touche de l'émulateur home. Observez le cycle d'activité. Concepts objets Soit la hiérarchie de classes présentées en cours: Créez un projet Java. Créez un premier fichier décrivant la classe Mammifère ( clic droit souris > New Class). Recopiez le code du transparent de cours. Créez un deuxième fichier ( même procédure mais validez la case static main). Créer un objet de type mammifère. Faites le crier. Afficher son age. Essayer de modifier son age sans passer par les getters/setter (accès direct au champ age depuis l'extérieur).changer l'âge. Afficher l'âge pour voir si le champ a été modifié.

Rajouter la classe Chien. Créer un chien. Afficher son âge. Faire une acrobatie. Peut-on afficher son nom. Apporter une modification dans la classe pour cela (public interdit!!!). Rajouter des System.out.println dans les constructeurs de Mammifere et de Chien. Relancez le programme et regarder l'ordre d'appel des constructeurs. Créer une référence monchien de type Chien (pas de new). Créer une référence monmammifere de type Mammifere (pas de new). Créer un objet de type Chien référencé par monmammifere (une ligne d'instruction). Essayer de faire des acrobaties! Essayer de changer l'âge. Que s'est-il passé? Quel type d'opération a t'on fait? Ecrire la ligne suivante : monchien=monmammifere; Que vous indique le compilateur? Comment s'appelle cette opération? L'objet réel a t'il changé entre les 2 opérations? Rajouter la classe Chat. Créer un objet Chien référencé par monchien. Créer une référence monchat et une référence monmammifere. Tester monmammifere=monchien;. Méthodes accessibles? Tester monchat=monchien;. Méthodes accessibles? Créer un Chat référencé par mon Chat. Tester monmammifere=monchat. Méthodes accessibles? Reprendre l'exemple du cours : créer un tableau de mammifère. Le peupler d'animaux. Appliquer un traitement commun à tous ces animaux : les faire crier par exemple! Les linear layouts L'objectif est la réalisation de l'interface graphique suivant permettant la saisie des données pour le calcul de l'indice de masse corporelle. horizontal horizontal vertical vertical Ouvrez le projet Exolayout1.Suivez la structure imposée ainsi que la désignation des éléments placés. Les textes affichés sont codés 'en dur' dans le xml. Dans votre code java vous rajouterez du code pour la configuration des NumberPicker ressemblant à : taillepicker.setmaxvalue(100); taillepicker.setminvalue(0); taillepicker.setwrapselectorwheel(true); Essayer d'aligner de logo IUT sur la droite en jouant sur layout_gravity. Que se passe t'-il? Relativelayout Nous allons améliorer la disposition précédente en utilisant maintenant le conteneur relativelayout à la racine du layout. Faire une copie du projet précédent et renommer. N'abusez pas du designer et préférez les

copier/coller dans le xml. N'oubliez la configuration des NumberPicker dans le code Java. Le centrage des NumberPicker,est traité dans votre poly (astuce des LinearLayout imbriqué). Pour gérer l'espacement entre les éléments utilisez la balise : android:layout_margintop="xxdp" Gérer les clics Nous allons exploiter les données et gérer le bouton VALIDE. Ouvrez le projet ClicHandler existant qui est à compléter. L'interface visuelle est légèrement modifiée comme suit. Rajouter dans le layout un linearlayout horizontal ll_imcdisplay incluant un ImageView + un textview. Ce linearlayout sera invisible au départ (android:visibility="invisible" ) Modifier les attributs des 2 bouttons afin de les aligner en bas de page à droite. Dans votre code Java déclarer en tant que champs privés vos NumberPicker ainsi que le textview et l'imageview

précédemment rajouté. Implémenter la gestion du clic selon la méthode 1 de votre poly. Tester le clic changeant la visité du linearlayout ll_imcdisplay : ll.setvisibility(view.visible); Mettre en place une methode privé private double calculimc(int poids, int taille) qui calcule et renvoie l'imc. Cette méthode est appelée depuis le gestionnaire de clic. Compléter le handler associé au bouton de validation Conseils et explications: Récupération de la valeur d' un NumberPicker this.poidspicker.getvalue(); Contrôle de la visibilité d'un du élément : ll.setvisibility(view.visible); Manipulation et formatage des chaines de caractères DecimalFormat f = new DecimalFormat(); f.setmaximumfractiondigits(1); String imcchaine=f.format(imc); String comment= "IMC: "+imcchaine; Mise à jour l icône en fonction de la valeur de l'imc Exemple : if (imc<18.5){ //maigreur this.iconeimc.setimageresource(r.drawable.sad); comment=comment+" attention : etat de maigreur"; } else {... Conclusion sur cette exercice : Cette interface visuelle,quoique que fonctionnelle, est un exemple de mauvaise pratique dans un contexte objet. En effet, pour ne citer que cela, nous constatons que la couche métier ( calculer l'imc) n'est pas modélisée sous formes d'objets (classes et encapsulations). Par conséquent elle est fortement couplée à l'ihm, difficile à maintenir et à étendre ( plusieurs modes de calcul de l'imc, cas des enfants, gestions de plusieurs utilisateurs etc...) et peu sécurisée. Ressources Copier et coller le précédent projet.renommer. Remplacer tous les codages en «dur» du layout par des ressources (marges, textes etc...) Mettez un peu couleur dans la précédente interface Navigation L'objectif est de réaliser une navigation simple entre 2 activités avec passage de données. Vous travaillerez sur le squelette projet Navigation1 fourni.

Dans un premier temps compléter le projet de telle manière à lancer la page d'affichage sur le clic (pas de transmission de données entre les deux activités) Gérer la transmission des données et la mise à jour de l'affichage Menu L'objectif est de réaliser une navigation simple par le biais d'un menu. Le scénario est le suivant : - saisie des données puis clic sur valide - calcul et visualisation de l'imc en démarrant l'activité par le biais du menu - visualisation d'une aide en démarrant l'activité par le biais du menu Un squelette a compléter est fourni ( exo Menu) Stratégie de mise en place du menu : Plutôt que se surcharger pour chaque activité onoptionsitemselected et oncreateoptionsmenu une classe BaseMenuActivity, qui définira un menu commun à nos trois activités, sera crée. Pour ce faire les trois activités de notre application hériterons de BaseMenuActivity. vue3 vue1 vue2 Stratégie de passage des valeurs : Compte tenu de la stratégie adoptée pour le menu nous utiliserons l'équivalent d'une variable globale vue par toutes les activités. Pour cela nous exploiterons le fait que les objets définis au niveau de l'application sont accessibles depuis les activités. Il faut pour cela hériter de la classe Application, personnaliser notre application puis enregistrer l'application dans le manifeste. Ma référence globale J'enregistre mon application customisée!!

Le travail à réaliser sur le squelette à compléter est le suivant : Compléter la classe BaseMenuActivity et la ressource menu afin de proposer le schéma de navigation attendu.les icônes utilisées sont : @android:drawable/ic_menu_edit, @android:drawable/ic_menu_gallery et @android:drawable/ic_menu_info_details Compléter les fichiers et Individu correspondant aux classes définis ci-dessous Compléter le code manquant dans MainActivity et ResultIMCActivity