Telechargé par Amin Benhachem

TP - Android

publicité
Université de Pau et des Pays de l’Adour
Master 2 Technologies de l’Internet
TP - Android
Youssef RIDENE
Trace et Log
Pour tracer votre code, utilisez la vue Eclipse Logcat. Il faudra par la suite Utiliser la Classe Log pour afficher
des messages dans cette vue. Pour plus d’informations : http ://developer.android.com/reference/android/util/Log.html
Exercice 1 : HelloWorld
Développer une application qui affiche HelloWorld.
1. Modifier la police du texte
2. Centrer le texte
3. Modifier la couleur de fond
4. Ajouter une image au dessus du texte
5. Ajouter une zone de texte qui décrit l’image
Votre application doit fonctionner correctement en mode paysage.
Exercice 2 : Shared Preferences
Nous allons reprendre l’exercice 1 et utiliser les SharedPreferences (http ://developer.android.com/reference/android/co
pour afficher un message uniquement lors de la première utilisation. Inspirez vous du code donné en Annexe.
Exercice 3 : Convertisseur
L’application contient 2 tabulations. La première pour une conversion Celsius ↔ Fahrenheit et la deuxième
pour une conversion Km ↔ Miles. Chaque tabulation contient les éléments suivants
– Un titre
– 2 boutons radio (C ↔ F) et (F ↔ C) pour la première tabulation et (Km ↔ Miles) et (Miles ↔ Km) pour
la deuxième.
– Une zone de texte pour saisir la valeur à convertir
– Un bouton pour calculer la valeur
– Une TextView pour afficher le résultat
La touche retour permet de quitter l’application. Ajouter une AlertDialog pour confirmer le choix de l’utilisateur (cf. annexe).
Exercice 4 : Lecteur multimédia basique
L’application contient :
– 3 boutons radio avec 3 titres différents
– Un bouton Play pour jouer la piste sélectionnée
– Un bouton Stop
– Un bouton Help qui affiche une Alert avec votre nom et des informations sur l’application
– Un bouton About qui affiche dans une nouvelle fenetre des informations sur le chanteur (la piste...)
1
Université de Pau et des Pays de l’Adour
Master 2 Technologies de l’Internet
Exercice 5 : Handler, gestion des langues et menu
Reprendre l’application de l’exercice 2 pour la modifier et avoir les écrans suivants : Splash Screen (3s) →
Choisir la langue (fr/en) → Convertisseur
En appuyant sur le bouton « Menu » du simulateur, 2 icones apparaissent :
– Icône About : affiche une nouvelle Activity en expliquant l’application et les formules utilisées...
– Icône Support : affiche une alerte avec votre nom, email cliquable et votre numero de téléphone (En
cliquant dessus, on pourra vous appeler directement).
Exercice 6 : Google Maps
Faire le tutrial disponible à cette adresse : http ://mobiforge.com/developing/story/using-google-mapsandroid
Annexe
// S h a r e d P r e f e r e n c e s
SharedPreferences prefs ;
/∗ r e t u r n s t r u e , i f t h i s i s t h e f i r s t run ∗/
public boolean getFirstRun () {
r e t u r n mPrefs . g e t B o o l e a n ( " i s F i r s t " , t r u e ) ;
}
/∗ s t o r e t h e f i r s t run ∗/
p u b l i c v o i d setRunned ( ) {
SharedPreferences . Editor edit = p r e f s . edit ( ) ;
e d i t . putBoolean ( " i s F i r s t " , f a l s e ) ;
e d i t . commit ( ) ;
}
/∗ s e t t i n g up p r e f e r e n c e s s t o r a g e ∗/
public void f i r s t R u n P r e f e r e n c e s ( ) {
Context mContext = t h i s . g e t A p p l i c a t i o n C o n t e x t ( ) ;
p r e f s = mContext . g e t S h a r e d P r e f e r e n c e s ( " myAppPrefs " , 0 ) ; //0 = mode p r i v a t e . o n l y t h i
}
// C o n t r o l e r l a t o u c h e Back pour ne pas s o r t i r de l ’ a p p l i c a t i o n
/∗ Avant l a v e r s i o n 2 . 0 ∗ /
@Override
p u b l i c b o o l e a n onKeyDown ( i n t keyCode , KeyEvent e v e n t ) {
i f ( keyCode == KeyEvent .KEYCODE_BACK && e v e n t . getRepeatCount ( ) == 0 ) {
// do something on back .
return true ;
}
r e t u r n s u p e r . onKeyDown ( keyCode , e v e n t ) ;
}
2
Université de Pau et des Pays de l’Adour
Master 2 Technologies de l’Internet
/∗ Depuis l a v e r s i o n 2 . 0 ∗ /
@Override
p u b l i c v o i d onBackPressed ( ) {
// do something on back .
return ;
}
//La t o u c h e Back pemrmettra de q u i t t e r l ’ a p p l i c a t i o n :
I n t e n t i n t e n t = new I n t e n t ( ) ;
i n t e n t . s e t C l a s s (A. t h i s , B . c l a s s ) ;
startActivity ( intent );
finish ();
//La t o u c h e Back p e r m e t t r a de r e v e n i r à A:
I n t e n t m a i n I n t e n t = new I n t e n t (A. t h i s , B . c l a s s ) ;
s t a r t A c t i v i t y ( mainIntent ) ;
// A l e r t
A l e r t D i a l o g . B u i l d e r d l g A l e r t = new A l e r t D i a l o g . B u i l d e r ( t h i s ) ;
d l g A l e r t . s e t M e s s a g e ( g e t R e s o u r c e s ( ) . g e t S t r i n g (R. s t r i n g . t i t l e ) ) ;
d l g A l e r t . s e t T i t l e ( g e t R e s o u r c e s ( ) . g e t S t r i n g (R. s t r i n g . i n f o ) ) ;
// Media p l a y e r
MediaPlayer mp = MediaPlayer . c r e a t e ( Audio . t h i s , R. raw . p i s t e 1 ) ;
mp. s t a r t ( ) ;
mp. s t o p ( ) ;
// S p l a s h s c r e e n
new Handler ( ) . p o s t D e l a y e d ( new Runnable ( ) {
@Override
p u b l i c v o i d run ( ) {
I n t e n t m a i n I n t e n t = new I n t e n t ( S p l a s h . t h i s , Dest . c l a s s ) ;
Splash . t h i s . s t a r t A c t i v i t y ( mainIntent ) ;
Splash . t h i s . f i n i s h ( ) ;
}
} , SPLASH_DISPLAY_LENGTH ) ;
//Menu
p u b l i c b o o l e a n onCreateOptionsMenu (Menu menu ) {
s u p e r . onCreateOptionsMenu ( menu ) ;
MenuItem item = menu . add ( " About " ) ;
item . s e t I c o n (R. drawable . about ) ;
item . s e t I n t e n t ( new I n t e n t (A. t h i s , B . c l a s s ) ) ;
item = menu . add ( " S e t t i n g s " ) ;
item . s e t I c o n (R. drawable . s e t t i n g s ) ;
item . s e t I n t e n t ( new I n t e n t (A. t h i s , C . c l a s s ) ) ;
return true ;
}
3
Université de Pau et des Pays de l’Adour
Master 2 Technologies de l’Internet
p u b l i c b o o l e a n o n O p t i o n s I t e m S e l e c t e d ( MenuItem item ) {
i f ( item . hasSubMenu ( ) == f a l s e ) {
I n t e n t i = item . g e t I n t e n t ( ) ;
startActivity ( i );
}
return true ;
}
4
Téléchargement