Polices de caractères
Il est possible d'utiliser plusieurs polices de caractères dans vos Widgets.
Polices natives
Nativement, Android en connait quatre:
- sans
- sérif
- normal
- monospace
Vous pouvez donc facilement utiliser ces fontes dans votre application:
Sous Eclipse, ouvrez votre fichier XML (main.xml) et cliquez sur l'onglet Graphical Layout qui va vous permettre de visualiser le rendu graphique de votre activité.
Posez un widget de type texte (TextView, EditText, ...). Pour modifier la fonte utilisée, faîtes un clique droit sur le widget et choisissez l'option
"Other Properties\Defined by TextView\Type Face"
Vont alors apparaître les quatre fontes disponibles par défaut, vous n'avez plus qu'à choisir !
Pour les plus curieux d'entre vous, faîtes un clique sur l'onglet permettant de visualiser le contenu textuel de votre fichier xml, et vous constaterez qu'un nouvel attribut est ajouté sur le widget pour lequel vous avez effectué le changement de police: android:typeface
Par exemple pour une fonte "monospace":
android:typeface="monospace"
Vous noterez que
sous "Other Properties\Defined by TextView\", il sera possible de
définir le type (Bold, italic, normal...) mais aussi la taille, et bien
d'autres choses encore !
Polices personnelles
Il sera possible d'utiliser d'autres polices. Mais dans ce cas, vous devrez les fournir avec votre projet.
Android sachant décoder les polices True Type (ttf de Microsoft), vous aurez donc l'embarras du choix !
Par contre, l'utilisation de la police passera par du code, impossible de définir la fonte via le fichier XML !
Attention
à la taille que peuvent occuper ces polices au niveau du file system
! Votre application peut vite devenir gourmande en ressource !
Pour une raison
que j'ignore, certaines fontes peuvent ne pas être utilisable par Android.
Dans ce cas, la police sera automatiquement remplacée par celle par défaut.
Généralement, les fontes seront placées sous le répertoire assets/polices.
Comment faire ?
Reprenons l'exemple simple de HelloWorld, celui proposé par défaut par éclipse. (L'exemple ici et des explications là !)
Vous avez donc un code comme ceci:
J'ai pris la police
segoesc.ttf pour mon exemple, mais vous pouvez en prendre une autre, pensez
alors à modifier le code !
Généralement
sous Android, vous renommerez les fichiers fontes en minuscule (il s'agit plus
d'une convention, tout est déjà en miniscule dans vos ressources).
On peut donc voir qu'il existe une classe nommée Typeface qui va permettre de modifier par code la police à utiliser.
Ce n'est pas tout, je cherche en effet le widget contenant le texte Hello World dans mon exemple. Pour y parvenir, je l'ai nommé dans le fichier main.xml: Text1
Voir l'attribut android:id="@+id/Text1"
Et voilà, il n'y a plus qu'à lancer ce super code !