Quello che voglio sapere è se c'è la possibilità di leggere le coppie di kerning dal carattere tipografico usando l'API di Android.
Non ci sono API pubbliche per leggere le coppie di kern da un file TTF. Tuttavia, ho estratto il codice pertinente da Apache FOP e puoi leggere le coppie di kern utilizzando this library.
Esempio di utilizzo:
TTFFile file = TTFFile.open(getAssets().open("fonts/font.ttf"));
Map<Integer, Map<Integer, Integer>> kerning = file.getKerning();
È inoltre possibile recuperare altri metadati. Esempio:
TTFFile ttfFile = TTFFile.open(new File("/system/fonts/Roboto-Regular.ttf"));
String name = ttfFile.getFullName(); // "Roboto Regular"
String family = ttfFile.getSubFamilyName(); // "Regular"
int fontWeight = ttfFile.getWeightClass(); // 400
String copyright = ttfFile.getCopyrightNotice(); // "Font data copyright Google 2014"
voglio abilitare la crenatura per il testo che sono la visualizzazione.
See:
How to adjust text kerning in Android TextView?
setLetterSpacing(float)
fonte
2016-02-16 03:50:06
[Questo vecchio domanda] (http://stackoverflow.com/q/1640659/2564301) (ma con risposte recente come l'anno scorso) suggeriscono che le tabelle di kern non sono esposte in Java. L'analisi "manuale" dei dati del file non elaborato è un'opzione praticabile? (Notando che ci sono diversi formati di tabella, tutti ugualmente atroci ...) – usr2564301
grazie, Jongware. Non mi preoccupo di analizzare i file * .ttf fornendo che ci sono alcune informazioni su dove cercare le coppie di kerning (di solito ho un po 'paura dei formati atroci). –
Quello sarebbe nelle [specifiche OpenType] (https://www.microsoft.com/typography/otspec/default.htm), per essere precisi in [The Kerning Table] (https://www.microsoft.com/ tipografia/otspec/kern.htm). Sicuramente non per i deboli di cuore; e se sei * veramente * sfortunato, il font che hai usato è di tipo 1 e quindi dovresti analizzare la sottotabella di 'GPOS', che è ancora più difficile ... (Questa potrebbe essere la vera ragione per cui i programmatori di Canvas ''drawText' semplicemente non si sono disturbati ...) – usr2564301