Upload
telesphore-auger
View
106
Download
0
Embed Size (px)
Citation preview
ANDROID
Les interfaces graphiques
INF6405 - 19 octobre 2011Hassan Makke, Simon Marchi et Mohamed Taboubi
Présentation disponible à http://nova.polymtl.ca/~simark/PresAndroidUI.pptx
Plan
• Concepts de base– View, ViewGroup, Layouts
• Layouts et View disponibles
• Méthode déclarative (XML)
Plan
• Concepts de base– View, ViewGroup, Layouts
• Layouts et View disponibles
• Méthode déclarative (XML)
Concepts de base
• Patron de conception composite
• View: élément d’interface graphique de base (bouton, champ de texte, …)
• ViewGroup: élément d’interface graphique composite, contient d’autres View
Concepts de base
Concepts de base
• Une interface par activité (Activity)
• Initialisation de l’interface graphique lors de la création de l’activité (méthode onCreate)
• Une vue racine (méthode setContentView)
Hello world
• Créer une classe dérivée de Activity
• Surcharger onCreate(Bundle)– Attention, laisser l’appel à super.onCreate(Bundle)
• Créer une View, la donner à setContentView(View)
Hello world
Plan
• Concepts de base– View, ViewGroup, Layouts
• Layouts et View disponibles
• Méthode déclarative (XML)
Les View disponibles
• TextView• EditText• CheckBox• ToggleButton• RadioGroup• Button• Spinner• AutoCompleteTextView
• DatePicker• TimePicker• ImageView• ImageButton• ProgressBar• AnalogClock• DigitalClock• RatingBar
TextView
• TextView: simple zone de texte
• Représentation:– Couleur– Police de caractères– Dimensions
• Convertit automatiquement les adresses courriel, numéros de téléphones, URL en éléments cliquables.
Documentation: http://developer.android.com/reference/android/widget/TextView.html
EditText
• EditText: champ d’entrée de texte• Masques de saisie
– android:phoneNumber="true“– android:capitalize– android:digits (caractère autorisés seulement)– android:password="true"
Documentation: http://developer.android.com/reference/android/widget/EditText.html
CheckBox
• CheckBox: case à cocher
• Style peut être appliqué sur le label du checkbox
Documentation: http://developer.android.com/reference/android/widget/CheckBox.html
ToggleButton
• ToggleButton: boutton poussoir
• Deux états– Attribut textuel pour chaque état
Documentation: http://developer.android.com/reference/android/widget/ToggleButton.html
RadioGroup
• RadioGroup: ensemble d’options, une seule peut être choisie à la fois
• Une fois une nouvelle option choisie, l'ancienne valeur est désélectionnée
Documentation: http://developer.android.com/reference/android/widget/RadioGroup.html
Button
• Button: bouton pour déclencher une action• Hérite de TextView
button.setOnClickListener ( new Button.OnClickListener() { public void onClick(View v) { //Action } });
android:onClick="maFonction"
Documentation: http://developer.android.com/reference/android/widget/Button.html
Spinner
• Spinner: liste déroulante
• Liste de valeurs• Une seule à choisir• Une fois choisie, seule cette valeur
reste et les autres disparaissent
Documentation: http://developer.android.com/reference/android/widget/Spinner.html
AutoCompleteTextView
• AutoCompleteTextView: liste déroulante éditable
• Choisir de la liste ou ajouter une valeur• La liste de choix apparait après avoir
entré n lettres
Documentation: http://developer.android.com/reference/android/widget/AutoCompleteTextView.html
DatePicker
• DatePicker: choisir une date
• Enregistrer un callback pour capter les changements des valeurs avec DatePicker.OnDateChangedListener
• Afficher une boîte de dialogue DatePicker avec DatePickerDialog
Documentation: http://developer.android.com/reference/android/widget/DatePicker.html
TimePicker
• TimePicker: choisir une heure
• Classes– DatePicker.OnTimeChangedListener– TimePickerDialog
• AM/PM ou 24 heures
Documentation: http://developer.android.com/reference/android/widget/TImePicker.html
ImageView
• ImageView: espace dont la représentation est une image
• Source d'image:– Répertoire– URI
• Fonctionnalités de transformation:– Taille de l'image
Documentation: http://developer.android.com/reference/android/widget/ImageView.html
ImageButton
• ImageButton: bouton dont la représentation est une image
• Hérite d'ImageView• Action avec setOnClickListener• Lors d'un clic, l'image sera entourée d'un cadre orange
Documentation: http://developer.android.com/reference/android/widget/ImageButton.html
ProgressBar
• ProgressBar: rend compte de l’avancement d’une tâche qui dure un certain temps
Documentation: http://developer.android.com/reference/android/widget/ProgressBar.html
AnalogClock
• AnalogClock: Horloge analogique
• Affiche l'heure courante• Pas possible de régler l'horloge sur une autre heure
Documentation: http://developer.android.com/reference/android/widget/AnalogClock.html
DigitalClock
• DigitalClock: Horloge numérique
• Affiche l'heure courante• AM/PM ou 24 heures• Pas possible de régler l'horloge sur une autre heure
Documentation: http://developer.android.com/reference/android/widget/DigitalClock.html
RatingBar
• RatingBar: rendu visuel d’une note
• Pour choisir si le widget est éditable android:isIndicator• Nombre d’étoiles dynamique
Documentation: http://developer.android.com/reference/android/widget/RatingBar.html
Les layouts disponibles
• ListView• FrameLayout• LinearLayout• TableLayout• RelativeLayout
Documentation: http://developer.android.com/guide/topics/ui/layout-objects.hrml
ListView
• ListView: place les widgets verticalement
• Visuellement séparés par une ligne• Si (hauteurCumulée > taille de l'écran)
– La liste devient défilante
• Utilisée pour créer un menu
Documentation: http://developer.android.com/reference/android/widget/ListView.html
http://www.androidpeople.com/wp-content/uploads/2010/01/listviewtextfilterexample.png
FrameLayout
• FrameLayout: empile les widgets les un sur les autres
Documentation: http://developer.android.com/reference/android/widget/FrameLayout.html
LinearLayout
• LinearLayout: aligne les widgets dans une seule direction– Horizontal ou vertical
Documentation: http://developer.android.com/reference/android/widget/LinearLayout.html
TableLayout
• TableLayout: agence les widgets sur un quadrillage
http://developer.android.com/images/table_layout.png
Documentation: http://developer.android.com/reference/android/widget/TableLayout.html
RelativeLayout
• RelativeLayout: place les widgets par rapports aux autres widgets
http://developer.android.com/images/designing_ui_layout_example.png
Documentation: http://developer.android.com/reference/android/widget/RelativeLayout.html
Plan
• Concepts de base– View, ViewGroup, Layouts
• Layouts et View disponibles
• Méthode déclarative (XML)
Méthode déclarative
Méthode déclarative
Méthode déclarative
• Layouts :– 2 Constructeurs : layout_width et layout_height
• WRAP_CONTENT• FILL_PARENT ou MATCH_PARENT
– Des attributs :• android:orientation• android:background• android:clickable• android:id • Etc.
• http://developer.android.com/reference/android/widget/LinearLayout.html
LinearLayout
• Le fichier XML :– Éditeur de texte ordinaire;– Syntaxe relativement simple et sans rapport avec le JAVA;– La visibilité de l’architecture de l’application;– Un fichier ressource : On peut changer le fichier XML
sans avoir besoin de recompiler le projet;• Tout élément de java a son équivalent en XML
portant aussi le même nom;• API d’Android décrit à la fois les classes Java et le
XML;
Avantages de la méthode déclararive
Quoi utiliser ?–Déclarative : déclarer tout élément
statique dans l’interface user.–Programmatique : gérer les
intéractions.
Programmatique ou déclarative ?
Exemple
Conclusion
• Voir l’interface comme une arborescence
• Utiliser la méthode déclarative (XML) !
• Aller voir les exemples sur le guide du développeur Android:– http://developer.android.com/guide/topics/ui/
Questions / Discussion