SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Université Constantine 2
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
– Cours 7 –
Chapitre 5 : Structure d’un projet Android (2/2)
Développement d’applications mobiles
2018/2019. Semestre 1
Université Constantine 2
Etudiants concernés
Faculté/Institut Département Niveau Spécialité
2018/2019. Semestre 1
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
Développement d’applications mobiles
Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA
Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA
– Cours 7 –
Chapitre 5 : Structure d’un projet Android (2/2)
Université Constantine 2 3
Prérequis
Maîtrise de Android Studio
Assimilation de la structure d’un projet Android
Objectifs du cours
Gérer les ressources en fonction du matériel
Internationaliser son application Android
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
Taille des écrans : 1 inch = 2,54 cm
small, normal, large, xlarge
Densité : DPI (Dot Per Inch)
ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi
Taille et densité des écrans
© Dr. Chaouche A.-C.
Université Constantine 2 5
Density independant Pixel (dp)
dp = px / (dpi / 160)
Taille et densité des écrans
Indépendance de la densité
© Dr. Chaouche A.-C.
Dépendance de densité (px)
Indépendance de densité (dp)
Université Constantine 2 6
Taille et densité des écrans
Distribution
© Dr. Chaouche A.-C.
ldpi mdpi tvdpi hdpi xhdpi xxhdpi Total
Small 0.4 % 0.1 % 0.5 %
Normal 0.8 % 0.3 % 25.4 % 41.2 % 24.4 % 92.1 %
Large 2.4 % 1.4 % 0.3 % 0.5 % 4.9 %
Xlarge 1.6 % 0.5 % 0.4 % 2.5 %
Total 0.4 % 4.8 % 1.7 % 26.2 % 41.9 % 25.0 % 100 %
Source : Google Play Store, 31 Août 2018
Université Constantine 2 7
Vue portrait vs. vue paysage
© Dr. Chaouche A.-C.
Université Constantine 2 8
Il est possible de personnaliser les ressources, en fonction de :
En utilisant des qualificateurs : par exemple :
Par défaut : layout : layouts par défaut
Orientation : layout-land : versions paysagedes layouts
Densité : mipmap-xxhdpi : icônes pour des écrans de densité xxhdpi
Taille : layout-large : layouts pour des écrans de taille large
Langue : values-ar/strings.xml : chaînes de caractères en arabe
...
Prise en charge des différentes configurations
© Dr. Chaouche A.-C.
Université Constantine 2 9
Images matricielles :
drawable-ldpi/graphic.png 36 x 36 (0.75x)
drawable-mdpi/graphic.png 48 x 48 (1.0x baseline)
drawable-hdpi/graphic.png 72 x 72 (1.5x)
drawable-xhdpi/graphic.png 96 x 96 (2.0x)
drawable-xxhdpi/graphic.png 144 x 144 (3.0x)
drawable-xxxhdpi/graphic.png 192 x 192 (4.0x)
→ Android Drawable Importer (Plugin) :
Installation : Settings… > Plugins > Browse repositories… >
Utilisation : res/drawable > New > Batch Drawable Import
Icônes vectorielles : (Material ou SVG)
drawable-anydpi/graphic.xml
→ Utilisation : res/drawable > New > Vector Asset
Drawables et densité de l’écran
© Dr. Chaouche A.-C.
Université Constantine 2 10
Internationalisation (1/2)
© Dr. Chaouche A.-C.
/res/values/strings.xml
<resources>
<string name="hello"> Hello </string>
...
</resources>
/res/values-ar/strings.xml
<resources>
<string name="hello"> ‫سالم‬ </string>
...
</resources>
Université Constantine 2 11
Internationalisation (2/2)
© Dr. Chaouche A.-C.
/java/LoginActivity.java
...
Locale myLocale = new Locale("ar");
DisplayMetrics dm = getResources().getDisplayMetrics();
Configuration conf = getResources().getConfiguration();
conf.locale = myLocale;
getResources().updateConfiguration(conf, dm);
...
Intent refresh = new Intent(this, LoginActivity.class);
startActivity(refresh);
finish();
...
Pour changer de langue dynamiquement (par programmation)
Université Constantine 2 12
Layouts : RelativeLayout
Attributs de RelativeLayout (1/2)
© Dr. Chaouche A.-C.
Aligner par rapport une autre vue ("@[+][package:]type:name")
android:layout_above, android:layout_below
android:layout_alignStart, android:layout_alignEnd
android:layout_alignTop, android:layout_alignBottom
android:layout_alignLeft, android:layout_alignRight
Aligner par rapport au parent ("true" ou "false")
android:layout_alignParentStart, android:layout_alignParentEnd
android:layout_alignParentTop, android:layout_alignParentBottom
android:layout_alignParentLeft, android:layout_alignParentRight
android:layout_alignWithParentIfMissing
Université Constantine 2 13
Layouts : RelativeLayout
Attributs de RelativeLayout (2/2)
© Dr. Chaouche A.-C.
Centrer par rapport au parent ("true" ou "false")
android:layout_centerHorizontal
android:layout_centerVertical
android:layout_centerInParent
Positionner par rapport à une autre vue ("@[+][package:]type:name")
android:layout_toStartOf, android:layout_toEndOf
android:layout_toLeftOf, android:layout_toRightOf
Université Constantine 2 14
Créer une activité ComplexActivity
Créer 8 Boutons
Aligner les boutons dans un RelativeLayout
Layouts : RelativeLayout
Exercice
© Dr. Chaouche A.-C.
Université Constantine 2 15
Layouts : RelativeLayout
Solution
© Dr. Chaouche A.-C.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button android:text="ONE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Button01" />
<Button android:text="TWO"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Button02"
android:layout_centerHorizontal="true" />
<Button android:text="THREE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Button03"
android:layout_alignParentRight="true" />
<Button android:text="FOUR"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Button04"
android:layout_toLeftOf="@+id/Button05"
android:layout_centerVertical="true" />
<Button android:text="FIVE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Button05"
android:layout_centerInParent="true" />
<Button android:text="SIX"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Button06"
android:layout_toRightOf="@+id/Button05"
android:layout_centerVertical="true" />
<Button android:text="SEVEN"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Button07"
android:layout_above="@+id/Button08"
android:layout_centerHorizontal="true" />
<Button android:text="EIGHT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/Button08"
android:layout_alignParentBottom="true" />
</RelativeLayout>
Université Constantine 2 16
Vue portrait vs. vue paysage
© Dr. Chaouche A.-C.
Université Constantine 2 17
Créer une version "paysage" de LoginActivity
Créer un package "layout-land"
Copier le fichier "layout_login.xml" dans "layout-land"
Modifier le code du "layout_login.xml" pour avoir l'affichage suivant
TP1b : Vue paysage de LoginActivity
© Dr. Chaouche A.-C.
Université Constantine 2 18
Documents sont accessibles :
Plateforme e-learning de l’université Constantine 2
Lien : http://elearning.univ-constantine2.dz/
Rendus du TP 1 :
Avant le Samedi 17 novembre à 23h59
À : ac.chaouche@misc-umc.org
Nom du fichier à rendre :
DAM_TP1_G%_NOMBINOME1_NOMBINOME2.zip
(Ex : DAM_TP1_G1_CHAOUCHE_NECIBI.zip)
Le fichier zip doit contenir seulement le dossier src
Documents et Rendus
© Dr. Chaouche A.-C.
Université Constantine 2 19
Configurations d’écran :
http://developer.android.com/guide/topics/resources/providing-resources.html
Drawables :
http://vogella.developpez.com/tutoriels/android/utilisation-drawable/
Android Drawable Import (Plugin) :
https://plugins.jetbrains.com/plugin/7658-android-drawable-importer
Quelques liens utiles
© Dr. Chaouche A.-C.
Université Constantine 2 20
Google Inc., «Google Play» 6 Juillet 2017. Lien : https://play.google.com.
Android Developer, «Supporting Multiple Screens». Lien :
https://developer.android.com/guide/practices/screens_support.html.
M. Seguy et Y. Bergès, Android, A Complete Course, From Basics To Enterprise
Edition, Édition Française éd., 2011, p. 279.
S. Walter, «Android script Photoshop pour exporter en ldpi, hdpi et xhdpi», 5
Janvier 2012. Lien : https://blog.stephaniewalter.fr/android-script-photoshop-
pour-exporter-en-ldpi-hdpi-et-xhdpi/.
Android Developer, «References - Android Plateform API 28 : Relative Layout».
Lien : https://developer.android.com/guide/topics/ui/layout/relative.html.
Références
© Dr. Chaouche A.-C.
Université Constantine 2 21
Chapitre 6 : Gestion des évènements et intentions
Objectifs :
Gérer les évènements d’une vues (click, key, ...)
Afficher des messages dans le Log et les Toasts
Comprendre la gestion des activités
Changer d’activité et transférer des données
Prochain chapitre
© Dr. Chaouche A.-C.
Université Constantine 2 22
Créer un ScrollView dans la racine
pour gérer le dépassement de l’écran
Améliorer les champs de texte
Supprimer le TextView
Englober le EditText dans une balise
android.support.design.widget.TextInputLayout
Rajouter l’attribut android:hint dans le EditText qui
remplace le TextView
Annexe
Améliorer l’ergonomie de la vue (1/2)
© Dr. Chaouche A.-C.
Université Constantine 2 23
Pour utiliser la vue android.support.design.widget.TextInputLayout
Ajouter les dépendances : com.android.support:design:26.+
Méthode 1 :
Project Structure > Modules > app >
Onglet Depenendencies
Méthode 2 : (dans le Gradle)
Annexe
Améliorer l’ergonomie de la vue (2/2)
© Dr. Chaouche A.-C.
/Gradle Scripts/build.gradle (Module: app)
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:design:26.+'
}

Contenu connexe

Tendances

Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteAhmed-Chawki Chaouche
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation FlutterAppstud
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsLilia Sfaxi
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...ENSET, Université Hassan II Casablanca
 
Les interface graphiques sous android
Les interface graphiques sous androidLes interface graphiques sous android
Les interface graphiques sous androidHoussem Lahiani
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Introduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileIntroduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileHoussem Rouini
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menusLilia Sfaxi
 

Tendances (20)

Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLite
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Les interface graphiques sous android
Les interface graphiques sous androidLes interface graphiques sous android
Les interface graphiques sous android
 
Introduction a Flutter
Introduction a FlutterIntroduction a Flutter
Introduction a Flutter
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Introduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileIntroduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobile
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Angular Avancé
Angular AvancéAngular Avancé
Angular Avancé
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 

Similaire à Applications Android - cours 7 : Ressources et adaptation au matériel

Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesAhmed-Chawki Chaouche
 
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.Mohammed TAMALI
 
Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017Cynapsys It Hotspot
 
02_Chapitre_1_.pdf
02_Chapitre_1_.pdf02_Chapitre_1_.pdf
02_Chapitre_1_.pdfallagahamza
 
Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Anne-Marie Pinna-Dery
 
Proposition pim esprit mobile
Proposition pim esprit mobileProposition pim esprit mobile
Proposition pim esprit mobileSalma Sayah
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfJordaniMike
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfHervKoya
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à AndroidYoann Gotthilf
 
Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01May Saghira
 
Cours android
Cours androidCours android
Cours androidAd Hafsa
 

Similaire à Applications Android - cours 7 : Ressources et adaptation au matériel (20)

Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Cv kouadio kouame_olivier
Cv kouadio kouame_olivierCv kouadio kouame_olivier
Cv kouadio kouame_olivier
 
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
 
Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017
 
Plasticité2015 technovf
Plasticité2015 technovfPlasticité2015 technovf
Plasticité2015 technovf
 
Applications Android (Planning)
Applications Android (Planning)Applications Android (Planning)
Applications Android (Planning)
 
02_Chapitre_1_.pdf
02_Chapitre_1_.pdf02_Chapitre_1_.pdf
02_Chapitre_1_.pdf
 
Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3
 
Tutorial android
Tutorial androidTutorial android
Tutorial android
 
EXemple 2.pptx
EXemple 2.pptxEXemple 2.pptx
EXemple 2.pptx
 
Rapport logiciels evenement_payombo_ly
Rapport  logiciels evenement_payombo_lyRapport  logiciels evenement_payombo_ly
Rapport logiciels evenement_payombo_ly
 
Proposition pim esprit mobile
Proposition pim esprit mobileProposition pim esprit mobile
Proposition pim esprit mobile
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdf
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdf
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à Android
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 
Cv kouadio kouame_olivier
Cv kouadio kouame_olivier Cv kouadio kouame_olivier
Cv kouadio kouame_olivier
 
Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01
 
Cours android
Cours androidCours android
Cours android
 

Dernier

GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 

Dernier (16)

GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 

Applications Android - cours 7 : Ressources et adaptation au matériel

  • 1. Université Constantine 2 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 7 – Chapitre 5 : Structure d’un projet Android (2/2) Développement d’applications mobiles 2018/2019. Semestre 1
  • 2. Université Constantine 2 Etudiants concernés Faculté/Institut Département Niveau Spécialité 2018/2019. Semestre 1 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz Développement d’applications mobiles Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA – Cours 7 – Chapitre 5 : Structure d’un projet Android (2/2)
  • 3. Université Constantine 2 3 Prérequis Maîtrise de Android Studio Assimilation de la structure d’un projet Android Objectifs du cours Gérer les ressources en fonction du matériel Internationaliser son application Android Résumé © Dr. Chaouche A.-C.
  • 4. Université Constantine 2 4 Taille des écrans : 1 inch = 2,54 cm small, normal, large, xlarge Densité : DPI (Dot Per Inch) ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi Taille et densité des écrans © Dr. Chaouche A.-C.
  • 5. Université Constantine 2 5 Density independant Pixel (dp) dp = px / (dpi / 160) Taille et densité des écrans Indépendance de la densité © Dr. Chaouche A.-C. Dépendance de densité (px) Indépendance de densité (dp)
  • 6. Université Constantine 2 6 Taille et densité des écrans Distribution © Dr. Chaouche A.-C. ldpi mdpi tvdpi hdpi xhdpi xxhdpi Total Small 0.4 % 0.1 % 0.5 % Normal 0.8 % 0.3 % 25.4 % 41.2 % 24.4 % 92.1 % Large 2.4 % 1.4 % 0.3 % 0.5 % 4.9 % Xlarge 1.6 % 0.5 % 0.4 % 2.5 % Total 0.4 % 4.8 % 1.7 % 26.2 % 41.9 % 25.0 % 100 % Source : Google Play Store, 31 Août 2018
  • 7. Université Constantine 2 7 Vue portrait vs. vue paysage © Dr. Chaouche A.-C.
  • 8. Université Constantine 2 8 Il est possible de personnaliser les ressources, en fonction de : En utilisant des qualificateurs : par exemple : Par défaut : layout : layouts par défaut Orientation : layout-land : versions paysagedes layouts Densité : mipmap-xxhdpi : icônes pour des écrans de densité xxhdpi Taille : layout-large : layouts pour des écrans de taille large Langue : values-ar/strings.xml : chaînes de caractères en arabe ... Prise en charge des différentes configurations © Dr. Chaouche A.-C.
  • 9. Université Constantine 2 9 Images matricielles : drawable-ldpi/graphic.png 36 x 36 (0.75x) drawable-mdpi/graphic.png 48 x 48 (1.0x baseline) drawable-hdpi/graphic.png 72 x 72 (1.5x) drawable-xhdpi/graphic.png 96 x 96 (2.0x) drawable-xxhdpi/graphic.png 144 x 144 (3.0x) drawable-xxxhdpi/graphic.png 192 x 192 (4.0x) → Android Drawable Importer (Plugin) : Installation : Settings… > Plugins > Browse repositories… > Utilisation : res/drawable > New > Batch Drawable Import Icônes vectorielles : (Material ou SVG) drawable-anydpi/graphic.xml → Utilisation : res/drawable > New > Vector Asset Drawables et densité de l’écran © Dr. Chaouche A.-C.
  • 10. Université Constantine 2 10 Internationalisation (1/2) © Dr. Chaouche A.-C. /res/values/strings.xml <resources> <string name="hello"> Hello </string> ... </resources> /res/values-ar/strings.xml <resources> <string name="hello"> ‫سالم‬ </string> ... </resources>
  • 11. Université Constantine 2 11 Internationalisation (2/2) © Dr. Chaouche A.-C. /java/LoginActivity.java ... Locale myLocale = new Locale("ar"); DisplayMetrics dm = getResources().getDisplayMetrics(); Configuration conf = getResources().getConfiguration(); conf.locale = myLocale; getResources().updateConfiguration(conf, dm); ... Intent refresh = new Intent(this, LoginActivity.class); startActivity(refresh); finish(); ... Pour changer de langue dynamiquement (par programmation)
  • 12. Université Constantine 2 12 Layouts : RelativeLayout Attributs de RelativeLayout (1/2) © Dr. Chaouche A.-C. Aligner par rapport une autre vue ("@[+][package:]type:name") android:layout_above, android:layout_below android:layout_alignStart, android:layout_alignEnd android:layout_alignTop, android:layout_alignBottom android:layout_alignLeft, android:layout_alignRight Aligner par rapport au parent ("true" ou "false") android:layout_alignParentStart, android:layout_alignParentEnd android:layout_alignParentTop, android:layout_alignParentBottom android:layout_alignParentLeft, android:layout_alignParentRight android:layout_alignWithParentIfMissing
  • 13. Université Constantine 2 13 Layouts : RelativeLayout Attributs de RelativeLayout (2/2) © Dr. Chaouche A.-C. Centrer par rapport au parent ("true" ou "false") android:layout_centerHorizontal android:layout_centerVertical android:layout_centerInParent Positionner par rapport à une autre vue ("@[+][package:]type:name") android:layout_toStartOf, android:layout_toEndOf android:layout_toLeftOf, android:layout_toRightOf
  • 14. Université Constantine 2 14 Créer une activité ComplexActivity Créer 8 Boutons Aligner les boutons dans un RelativeLayout Layouts : RelativeLayout Exercice © Dr. Chaouche A.-C.
  • 15. Université Constantine 2 15 Layouts : RelativeLayout Solution © Dr. Chaouche A.-C. <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="ONE" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button01" /> <Button android:text="TWO" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button02" android:layout_centerHorizontal="true" /> <Button android:text="THREE" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button03" android:layout_alignParentRight="true" /> <Button android:text="FOUR" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button04" android:layout_toLeftOf="@+id/Button05" android:layout_centerVertical="true" /> <Button android:text="FIVE" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button05" android:layout_centerInParent="true" /> <Button android:text="SIX" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button06" android:layout_toRightOf="@+id/Button05" android:layout_centerVertical="true" /> <Button android:text="SEVEN" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button07" android:layout_above="@+id/Button08" android:layout_centerHorizontal="true" /> <Button android:text="EIGHT" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/Button08" android:layout_alignParentBottom="true" /> </RelativeLayout>
  • 16. Université Constantine 2 16 Vue portrait vs. vue paysage © Dr. Chaouche A.-C.
  • 17. Université Constantine 2 17 Créer une version "paysage" de LoginActivity Créer un package "layout-land" Copier le fichier "layout_login.xml" dans "layout-land" Modifier le code du "layout_login.xml" pour avoir l'affichage suivant TP1b : Vue paysage de LoginActivity © Dr. Chaouche A.-C.
  • 18. Université Constantine 2 18 Documents sont accessibles : Plateforme e-learning de l’université Constantine 2 Lien : http://elearning.univ-constantine2.dz/ Rendus du TP 1 : Avant le Samedi 17 novembre à 23h59 À : ac.chaouche@misc-umc.org Nom du fichier à rendre : DAM_TP1_G%_NOMBINOME1_NOMBINOME2.zip (Ex : DAM_TP1_G1_CHAOUCHE_NECIBI.zip) Le fichier zip doit contenir seulement le dossier src Documents et Rendus © Dr. Chaouche A.-C.
  • 19. Université Constantine 2 19 Configurations d’écran : http://developer.android.com/guide/topics/resources/providing-resources.html Drawables : http://vogella.developpez.com/tutoriels/android/utilisation-drawable/ Android Drawable Import (Plugin) : https://plugins.jetbrains.com/plugin/7658-android-drawable-importer Quelques liens utiles © Dr. Chaouche A.-C.
  • 20. Université Constantine 2 20 Google Inc., «Google Play» 6 Juillet 2017. Lien : https://play.google.com. Android Developer, «Supporting Multiple Screens». Lien : https://developer.android.com/guide/practices/screens_support.html. M. Seguy et Y. Bergès, Android, A Complete Course, From Basics To Enterprise Edition, Édition Française éd., 2011, p. 279. S. Walter, «Android script Photoshop pour exporter en ldpi, hdpi et xhdpi», 5 Janvier 2012. Lien : https://blog.stephaniewalter.fr/android-script-photoshop- pour-exporter-en-ldpi-hdpi-et-xhdpi/. Android Developer, «References - Android Plateform API 28 : Relative Layout». Lien : https://developer.android.com/guide/topics/ui/layout/relative.html. Références © Dr. Chaouche A.-C.
  • 21. Université Constantine 2 21 Chapitre 6 : Gestion des évènements et intentions Objectifs : Gérer les évènements d’une vues (click, key, ...) Afficher des messages dans le Log et les Toasts Comprendre la gestion des activités Changer d’activité et transférer des données Prochain chapitre © Dr. Chaouche A.-C.
  • 22. Université Constantine 2 22 Créer un ScrollView dans la racine pour gérer le dépassement de l’écran Améliorer les champs de texte Supprimer le TextView Englober le EditText dans une balise android.support.design.widget.TextInputLayout Rajouter l’attribut android:hint dans le EditText qui remplace le TextView Annexe Améliorer l’ergonomie de la vue (1/2) © Dr. Chaouche A.-C.
  • 23. Université Constantine 2 23 Pour utiliser la vue android.support.design.widget.TextInputLayout Ajouter les dépendances : com.android.support:design:26.+ Méthode 1 : Project Structure > Modules > app > Onglet Depenendencies Méthode 2 : (dans le Gradle) Annexe Améliorer l’ergonomie de la vue (2/2) © Dr. Chaouche A.-C. /Gradle Scripts/build.gradle (Module: app) ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support:design:26.+' }