我目前正在使用从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)

10-08 08:47