Domanda

Voglio usare caratteri esterni nella mia app. Ho provato ad aggiungere nuovi caratteri usando AssetManager ma non ha funzionato. Di seguito è riportato il mio codice:

Typeface face;

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

textview.setTypeface(face);

ma non mostra il testo ...

Per favore, aiutatemi con questo.

È stato utile?

Soluzione

AFAIK, Android non supporta OpenType. Utilizzare invece un carattere TrueType.


AGGIORNAMENTO: apparentemente OpenType è ora supportato, almeno in qualche modo. Inizialmente non era supportato, quindi ti consigliamo di testare accuratamente il tuo carattere su qualsiasi versione di Android supportata dalla tua app.

Altri suggerimenti

Per accedere facilmente al nostro carattere, dobbiamo raggrupparlo con la nostra applicazione in modo che il nostro codice possa successivamente caricarlo. Per fare ciò, creiamo direttamente una cartella Fonts nei nostri asset

Questo potrebbe essere il tuo .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>

Scrivi il seguente codice nella tua classe .java

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

Android supporta OTF (non sono sicuro da quale versione dell'SDK ma funziona sicuramente con 1.6), stavo usando un font OTF per macchina da scrivere per un po 'ma il rendering non è affatto accurato come con la versione TTF che ho terminato utilizzando (tramite convertitore di font online). La linea di base era dappertutto (alcune lettere erano più alte di 2 pixel rispetto ad altre) e sui telefoni LDPI come l'HTC Wildfire il problema è notevolmente ingrandito a causa dei pixel più grandi.

Stavo avendo lo stesso problema. Il mio carattere non funzionava nemmeno in Android, ma avevo bisogno che funzionasse. Usando un editor di caratteri, ho copiato i caratteri dal mio carattere nel carattere fornito con l'esempio FontSampler da Android-src-2_1. Ha funzionato perfettamente.

Mentre ammetterò che il mio metodo era discutibile dal punto di vista della proprietà intellettuale, in realtà non ho finito con il carattere originale, poiché tutti i caratteri sono stati sostituiti e tutti i riferimenti al vecchio carattere sono stati sostituiti . Avevo provato a "guardare" il modo in cui i due caratteri erano definiti, ma neanche far corrispondere tutte le variabili dei caratteri. Quindi, nel ned, ho usato uno scheletro del carattere originale come modello per il nuovo carattere.

Android supporta entrambi i formati otf e ttf, li ho sperimentati entrambi.

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

questo è il passaggio che ho usato sia per l'inglese che per le lingue locali

Usa Fontinator che supporta i caratteri OTF e TTF della cabina

È una libreria Android che semplifica l'utilizzo di caratteri personalizzati.

https://github.com/svendvd/Fontinator

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top