3

有没有办法在 Android 中使用 OpenType 字体功能(小型大写字母、旧式数字等)?像自定义 TextView 这样的东西是理想的。

4

2 回答 2

3

从 api 级别 21 开始,Paint 现在支持 OpenType 字体功能

于 2014-12-27T18:26:36.143 回答
1

过时了,看看dcow的答案吧

我不认为 Android 提供这样的 API,但您可以使用 WebView,特别是新的 KitKat Chrome WebView 如果不支持旧的 WebView 会很好。您可以通过预装的 Droid 阿拉伯语 Naskh 字体查看 opentype 功能设置差异的示例:<div style="-webkit-font-feature-settings: 'rlig' 0">لا</div>

否则,我想您应该深入研究 JNI 编译 Harfbuzz/Freetype,如果没有其他方法可以使用 Cairo 来渲染字形轮廓。查看一些HarfBuzz 示例,您可以将其移植到您的 Android 应用程序中。除了配置 opentype 功能(布局、换行)之外,您可能还需要编译 ICU4C 或 Pango 和其他库,这取决于您需要什么,但这当然对于移动应用程序来说是非常大的依赖。

于 2014-04-30T18:37:21.823 回答