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

Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
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
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Les intents sous Android
Les intents sous Android Les intents sous Android
Les intents sous Android Houssem Lahiani
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Cours c#
Cours c#Cours c#
Cours c#zan
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
La gestion des exceptions avec Java
La gestion des exceptions avec JavaLa gestion des exceptions avec Java
La gestion des exceptions avec JavaPapa Cheikh Cisse
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockageLilia Sfaxi
 
Les interface graphiques sous android
Les interface graphiques sous androidLes interface graphiques sous android
Les interface graphiques sous androidHoussem Lahiani
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java IntroductionMouna Torjmen
 

Tendances (20)

Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
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 Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Les intents sous Android
Les intents sous Android Les intents sous Android
Les intents sous Android
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Cours c#
Cours c#Cours c#
Cours c#
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
La gestion des exceptions avec Java
La gestion des exceptions avec JavaLa gestion des exceptions avec Java
La gestion des exceptions avec Java
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Les interface graphiques sous android
Les interface graphiques sous androidLes interface graphiques sous android
Les interface graphiques sous android
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java Introduction
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Tp word n° 1
Tp word n° 1Tp word n° 1
Tp word n° 1
 

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
 
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
 
Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01May Saghira
 

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
 
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
 
Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01Cvnadirnew 110211085144-phpapp01
Cvnadirnew 110211085144-phpapp01
 

Dernier

systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 

Dernier (15)

systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 

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.+' }