我目前正在使用从TTF文件加载的外部(非标准)字体在Canvas上绘制文本。我要为显示的文本启用字距调整。
我想知道的是,是否有可能使用Android API从字型读取字距调整对。
最佳答案
没有公共(public)API可以从TTF文件中读取字距调整对。但是,我从Apache FOP中提取了相关代码,您可以使用this library读取字距调整对。
用法示例:
TTFFile file = TTFFile.open(getAssets().open("fonts/font.ttf"));
Map<Integer, Map<Integer, Integer>> kerning = file.getKerning();
您还可以检索其他元数据。例子:
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"
请参阅:
How to adjust text kerning in Android TextView?
setLetterSpacing(float)