Le blog de Bastien

Le blog de Bastien

Stage seconde année, Cinquième semaine

02/04

Pour organiser une application, il faut savoir gérer les priorités. On commence avec la langue par exemple.

La langue du système de l'utilisateur. On indique une langue puis, éventuellement, on peut préciser une région avec « -r ».

Priorité 2 :
Exemples :

  • en pour l'anglais ;

  • fr pour le français ;

  • fr-rFR pour le français mais uniquement celui utilisé en France ;

  • fr-rCA pour le français mais uniquement celui utilisé au Québec ;

 

Priorité 3 : la taille de l'écran.

Il s'agit de la taille de la diagonale de l'écran :

  • small pour les écrans de petite taille ;

  • normal pour les écrans standards ;

  • large pour les grands écrans, comme dans les tablettes tactiles ;

  • xlarge pour les très grands écrans, là on pense carrément aux téléviseurs.

 

Priorité 5 : l'orientation de l'écran.

Il existe deux valeurs :

  • port : c'est le diminutif de portrait, donc quand le terminal est en mode portrait ;

  • land : c'est le diminutif de landscape, donc quand le terminal est en mode paysage.

 

Priorité 8 : la résolution de l'écran.

  • ldpi : environ 120 dpi ;

  • mdpi : environ 160 dpi ;

  • hdpi : environ 240 dpi ;

  • xhdpi: environ 320 dpi (disponible à partir de l'API 8 uniquement) ;

  • nodpi : pour ne pas redimensionner les images matricielles (tel que les JPEG, PNG et GIF).

 

C'est seulement une partie des priorités les plus importantes. Il faut comprendre qu'il y a une règle avec les priorités, elles fonctionnent par ordre croissant.

Exemple : res/values-fr-rFR-port pour des données qui s'afficheront uniquement à ceux qui ont choisi la langue Français (France) et dont le téléphone se trouve en orientation portrait.

 

 De notre petit projet qui affichait seulement une ligne, on va pouvoir y ajouter des répertoires sans pour autant connaitre la syntaxe. Il suffit d'aller dans le sous-menu, dans Other... puis Android XML File dans le répertoire Android. Le premier champs c'est le type de ressources que l'on veut (il y en a 10 au total).

newandroidxmlfiles.png

 

Quand on choisit un type, la fenêtre change elle aussi pour visualiser ce que l'on sélectionne. Il s'agit des quantificateurs pour notre ressource choisie.

configurationfolder.png

 

 

 

03/04

Aujourd'hui on finit de faire les exercices de tests afin de comprendre comment fonctionne l'affichage d'une vue sur l'émulateur. Etant donné qu'on a la version 19. Il faut changer/supprimer des lignes de codes pour que ça fonctionne.

 

On peut passer à l'apprentissage de la partie graphique. Eclipse nous permet de créer des interfaces graphiques à la souris. Il est en effet possible d'ajouter un élément et de le positionner grâce à sa souris. La mauvaise, c'est que c'est beaucoup moins précis qu'un véritable code et qu'en plus l'outil est plutôt buggué.

 

En fait, à chaque fois qu'on récupère un objet depuis un fichier XML dans notre code Java, on procède à une opération qui s'appelle la désérialisation. Concrètement, la désérialisation, c'est transformer un objet qui n'est pas décrit en Java − dans notre cas l'objet est décrit en XML − en un objet Java réel et concret. C'est à cela que sert la fonction View findViewById (int id). Le problème est que cette méthode va aller chercher dans un arbre de vues, qui est créé automatiquement par l'activité. Or, cet arbre ne sera créé qu'après le setContentView. Donc le findViewById retournera null puisque l'arbre n'existera pas et l'objet ne sera donc pas dans l'arbre. On va à la place utiliser la méthode static View inflate (Context context, int id, ViewGroup parent). Cette méthode va désérialiser l'arbre XML au lieu de l'arbre de vues qui sera créé par l'activité.

 

 

04/04

On va parler des widgets aujourd'hui. Un widget est un élément de base qui permet d'afficher du contenu à l'utilisateur ou lui permet d'interagir avec l'application.

TextView : Elle permet d'afficher une chaîne de caractères que l'utilisateur ne peut modifier. On peut aussi y insérer des chaînes de caractères formatées, à l'aide de balises HTML, ce qui servira à souligner du texte ou à le mettre en gras.

Exemple :

<TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/textView"
  android:textSize="8sp"
  android:textColor="#112233" />

 

La syntaxe @String/textView  signifie qu'on utilise une ressource de type string. On précise la taille des caractères avec android:textSize, et on précise la couleur avec android:textColor.

 

EditText : Ce composant est utilisé pour permettre à l'utilisateur d'écrire des textes. Il s'agit d'un TextView éditable.

Exemple :

<EditText
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:hint="@string/editText"
  android:inputType="textMultiLine"
  android:lines="5" />

 

On a remplacé par android:hint le android:text. android:text remplit l'EditText avec le texte demandé alors que le android:hint affiche juste un texte d'indication qui n'est pas pris en compte par l'EditText en tant que valeur.



02/04/2014
0 Poster un commentaire

A découvrir aussi


Ces blogs de Informatique & Internet pourraient vous intéresser

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour