Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 12
Polices de caractères 143
android:text="Bonjour !"
android:textSize="20sp"
/>
Cette description construit un tableau montrant les noms courts de quatre polices. Vous
remarquerez que les trois premiers utilisent l’attribut android:typeface, dont la valeur
est l’une des trois polices prédéfinies ("sans", par exemple).
Ces trois polices sont parfaites. Cependant, un designer, un chef de projet ou un client peut
très bien vouloir en utiliser une autre. Vous pouvez également choisir d’utiliser une police
spéciale, comme "dingbats", à la place d’images PNG.
Le moyen le plus simple d’y parvenir consiste à fournir la ou les polices concernées avec
votre application. Pour ce faire, il suffit de créer un répertoire assets/ dans l’arborescence du projet et d’y placer les polices TrueType (TTF). Vous pourriez, par exemple,
créer un répertoire assets/polices/ et y placer les fichiers TTF.
Il faut ensuite demander aux widgets d’utiliser cette police mais, malheureusement, vous
ne pouvez pas le faire dans le fichier de description XML car il ne connaît pas celles que
vous avez pu placer dans les assets de l’application. Cette modification doit donc avoir
lieu dans le code Java :
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),
"polices/HandmadeTypewriter.ttf");
tv.setTypeface(face);
}
}
Ici, on récupère le TextView pour notre exemple "Custom" et l’on crée un objet Typeface
en appelant la méthode statique createFromAsset(), qui prend en paramètre l’AssetManager de l’application (obtenu via getAssets()) et un chemin relatif de la police
présent dans le répertoire assets/.
Ensuite, il suffit d’indiquer au TextView d’utiliser cette police en appelant sa méthode
setTypeface() avec le Typeface que l’on vient de créer. Ici, on utilise la police Handmade Typewriter 1 (voir Figure 12.1).
1. http://moorstation.org/typoasis/designers/klein07/text01/handmade.htm.
Livre Android.book Page 143 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 12
Polices de caractères 143
android:text="Bonjour !"
android:textSize="20sp"
/>
Cette description construit un tableau montrant les noms courts de quatre polices. Vous
remarquerez que les trois premiers utilisent l’attribut android:typeface, dont la valeur
est l’une des trois polices prédéfinies ("sans", par exemple).
Ces trois polices sont parfaites. Cependant, un designer, un chef de projet ou un client peut
très bien vouloir en utiliser une autre. Vous pouvez également choisir d’utiliser une police
spéciale, comme "dingbats", à la place d’images PNG.
Le moyen le plus simple d’y parvenir consiste à fournir la ou les polices concernées avec
votre application. Pour ce faire, il suffit de créer un répertoire assets/ dans l’arborescence du projet et d’y placer les polices TrueType (TTF). Vous pourriez, par exemple,
créer un répertoire assets/polices/ et y placer les fichiers TTF.
Il faut ensuite demander aux widgets d’utiliser cette police mais, malheureusement, vous
ne pouvez pas le faire dans le fichier de description XML car il ne connaît pas celles que
vous avez pu placer dans les assets de l’application. Cette modification doit donc avoir
lieu dans le code Java :
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),
"polices/HandmadeTypewriter.ttf");
tv.setTypeface(face);
}
}
Ici, on récupère le TextView pour notre exemple "Custom" et l’on crée un objet Typeface
en appelant la méthode statique createFromAsset(), qui prend en paramètre l’AssetManager de l’application (obtenu via getAssets()) et un chemin relatif de la police
présent dans le répertoire assets/.
Ensuite, il suffit d’indiquer au TextView d’utiliser cette police en appelant sa méthode
setTypeface() avec le Typeface que l’on vient de créer. Ici, on utilise la police Handmade Typewriter 1 (voir Figure 12.1).
1. http://moorstation.org/typoasis/designers/klein07/text01/handmade.htm.
Livre Android.book Page 143 Dimanche, 8. novembre 2009 12:23 12
