2011-10-10 4 views
1

Je comprends que pour utiliser des polices personnalisées dans un widget, j'ai besoin de rendre la police à un bitmap, mais comment puis-je définir une police de caractères système par programme?widget Android: définir la police par programmation

android:typeface="serif" 

en XML est réussi, mais je ne peux pas trouver un moyen de le faire au moment de l'exécution.

J'ai actuellement

int fn = fullDate.length(); 
SpannableString dt = new SpannableString(fullDate); 
dt.setSpan(new StyleSpan(Typeface.BOLD), 0, fn, 0); 
remoteView.setTextViewText(R.id.dateText, dt); 

Ce qui fonctionne, mais en utilisant, par exemple, Typeface.SERIF, donne The constructor StyleSpan(Typeface) is undefined

Répondre

0

Le constructeur de StyleSpan que vous utilisez prend dans une constante définie dans Typeface et non un des champs. Les constantes disponibles sont

Typeface.BOLD 
Typeface.BOLD_ITALIC 
Typeface.ITALIC 
Typeface.NORMAL 

Si vous souhaitez définir la police de caractères à une police spécifique, vous devez utiliser TextView.setTypeFace()

EDIT Cela ne peut pas être fait pour les widgets puisque vous avez seulement accès à la télécommande vue. D'autres ont contourné ceci en passant une image à la vue à distance. Voir cette question pour plus de détails: How to use a custom typeface in a widget?

+0

Ceci est pour un widget, donc je n'ai pas setTypeFace() disponible – aperture

+0

@aperture Pour les widgets, voir cette question http://stackoverflow.com/questions/4318572/how-to -use-a-custom-typeface-dans-un-widget – spatulamania

+0

J'étais sous l'impression qui était seulement nécessaire pour les fontes personnalisées, pas les polices de caractères système – aperture

Questions connexes