60 votes

Utiliser des polices de caractères dans android

je veux utiliser des polices dans mon application. j'ai essayé d'ajouter de nouvelles polices de caractères à l'aide de gestionnaires d'actifs, mais cela n'a pas fonctionné.

Typeface face;

face = Typeface.createFromAsset(getAssets(), "font.otf");

textview.setTypeface(face);

mais il ne montre pas le texte...

plz help..

67voto

CommonsWare Points 402670

Autant que je sache, Android ne prend pas en charge les polices OpenType. Utiliser une police TrueType à la place.


Mise à JOUR: Apparemment, OpenType est maintenant pris en charge, au moins un peu. Il n'a pas été pris en charge à l'origine, de sorte que vous voulez tester votre police à fond sur les versions d'Android de votre application.

12voto

kirti avaiya Points 991

Pour accéder à notre police facilement, nous avons besoin de l'associer à notre application en sorte que notre code peut ensuite charger. Pour ce faire, nous allons créer un dossier de Polices dans nos actifs directe

Cela peut être votre .xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
    android:id="@+id/DefaultFontText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="30sp"
    android:text="Here is some text." />
<TextView
    android:id="@+id/CustomFontText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="30sp"
    android:text="Here is some text.">
    </TextView>

Écrire de code suivant dans votre .la classe java

Typeface tf = Typeface.createFromAsset(getAssets(),
            "fonts/BPreplay.otf");
    TextView tv = (TextView) findViewById(R.id.CustomFontText);
    tv.setTypeface(tf);

9voto

richardleggett Points 145

Android prend en charge la FTO (je ne suis pas sûr de qui version du SDK, mais cela fonctionne bien avec 1.6), j'ai été en utilisant une machine à écrire de la FTO de police pendant un certain temps mais le rendu est loin d'être aussi précis qu'avec le FDF version j'ai utilisé (en ligne via convertisseur de police). La ligne de base de tous sur la place (certaines lettres étaient un ensemble de 2 pixels de plus que les autres), et sur LDPI les téléphones comme le HTC Wildfire, le problème est amplifié en raison de la plus grande pixels.

1voto

dave evartt Points 11

J'ai eu le même problème. Ma police n'était pas de travail dans android non plus, mais j'en avais besoin pour travailler. À l'aide d'un éditeur de polices, j'ai copié les personnages de ma police dans la police qui vient avec le FontSampler exemple à partir d'Android-src-2_1. Il a parfaitement fonctionné.

Pendant que je vous avoue que ma méthode est contestable de la propriété intellectuelle du point de vue, je n'ai pas vraiment le vent en place à l'aide de la police d'origine, comme tous les caractères ont été remplacés et toutes les références à la police ancienne où remplacés. J'avais essayé le 'regard' sur la manière dont les deux polices ont été définis, mais en faisant toutes les polices variables match ne fonctionne pas non plus. Ainsi, dans la ned, j'ai utilisé un squelette d'origine de la police comme un modèle pour la nouvelle police.

1voto

deepan Points 6

android prend en charge à la fois de la fto et formats ttf, j'ai vécu tous les deux.

tv3 = (TextView)findViewById(R.id.tv1);
    Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
    tv3.setTypeface(typeFace);

c'est l'étape que j'ai utilisé à la fois en anglais et dans les langues locales

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X