09.02.2017 Views

creez-des-applications-pour-android

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.1 Constitution <strong>des</strong> interfaces graphiques<br />

prend (la place sur l’axe vertical). Ces deux attributs peuvent prendre une valeur parmi les trois<br />

suivantes :<br />

— fill_parent : signifie qu’elle prendra autant de place que son parent sur l’axe concerné ;<br />

— wrap_content : signifie qu’elle prendra le moins de place possible sur l’axe concerné. Par<br />

exemple si votre vue affiche une image, elle prendra à peine la taille de l’image, si elle<br />

affiche un texte, elle prendra juste la taille suffisante <strong>pour</strong> écrire le texte ;<br />

— Une valeur numérique précise avec une unité.<br />

Je vous conseille de ne retenir que deux unités :<br />

— dp ou dip : il s’agit d’une unité qui est indépendante de la résolution de l’écran. En effet,<br />

il existe d’autres unités comme le pixel (px) ou le millimètre (mm), mais celles-ci varient<br />

d’un écran à l’autre… Par exemple si vous mettez une taille de 500 dp <strong>pour</strong> un widget, il aura<br />

toujours la même dimension quelque soit la taille de l’écran. Si vous mettez une dimension<br />

de 500 mm <strong>pour</strong> un widget, il sera grand <strong>pour</strong> un grand écran… et énorme <strong>pour</strong> un petit<br />

écran.<br />

— sp : cette unité respecte le même principe, sauf qu’elle est plus adaptée <strong>pour</strong> définir la<br />

taille d’une police de caractères.<br />

[[attention]] | Depuis l’API 8 (dans ce cours, on travaille sur l’API 7), vous pouvez remplacer<br />

fill_parent par match_parent. Il s’agit d’exactement la même chose, mais en plus explicite.<br />

[[question]] | Il y a quelque chose que je trouve étrange : la racine de notre layout, le nœud<br />

RelativeLayout, utilise fill_parent en largeur et en hauteur. Or, tu nous avais dit que cet<br />

attribut signifiait qu’on prenait toute la place du parent… Mais il n’a pas de parent, puisqu’il<br />

s’agit de la racine !<br />

C’est parce qu’on ne vous dit pas tout, on vous cache <strong>des</strong> choses, la vérité est ailleurs. En fait,<br />

même notre racine a une vue parent, c’est juste qu’on n’y a pas accès. Cette vue parent invisible<br />

prend toute la place possible dans l’écran.<br />

Vous pouvez aussi définir une marge interne <strong>pour</strong> chaque widget, autrement dit l’espacement<br />

entre le contour de la vue et son contenu (voir figure suivante).<br />

Ci-<strong>des</strong>sous avec l’attribut <strong>android</strong>:padding dans le fichier XML <strong>pour</strong> définir un carré d’espacement<br />

; la valeur sera suivie d’une unité, 10.5dp par exemple.<br />

<br />

La méthode Java équivalente est public void setPadding (int left, int top, int<br />

right, int bottom).<br />

textView.setPadding(15, 105, 21, 105);<br />

En XML on peut aussi utiliser <strong>des</strong> attributs <strong>android</strong>:paddingBottom <strong>pour</strong> définir uniquement<br />

l’espacement avec le plancher, <strong>android</strong>:paddingLeft <strong>pour</strong> définir uniquement l’espacement<br />

entre le bord gauche du widget et le contenu, <strong>android</strong>:paddingRight <strong>pour</strong> définir uniquement<br />

l’espacement de droite et enfin <strong>android</strong>:paddingTop <strong>pour</strong> définir uniquement l’espacement<br />

avec le plafond.<br />

85

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!