【发布时间】:2011-04-14 18:48:51
【问题描述】:
我的 Android 应用程序需要支持各种语言(如中文等)。其中大部分位于 Ascender 的 DroidSansFallback.ttf 文件中。
见https://android.googlesource.com/platform/frameworks/base/+/master/data/fonts
在某些 Android 手机上,存在 DroidSansFallback.ttf,但缺少许多字形,例如在美国发行的 NexusOne 上。根本没有亚洲字体字形,大多只有拉丁字符和相关字符。
那该怎么办?
我将自己的 DroidSansFallback.ttf 副本添加到“资产”中(我还尝试了其他来源的其他字体)并在运行时使用字体类进行设置。
对于一些手机和一些 .ttf 文件,字体渲染完全搞砸了,这意味着字母只是一行中的一些点。
经过深入分析,问题归结为:
- 小 .ttf 文件似乎总能正常工作 (
- 大 .ttf 文件根本不起作用 (>3MB)
- 如果手机安装了完整的 DroidSansFallback.ttf(大约 3.5MB),即使是 1 或 2MB 的字体也会出错。如果手机只安装了 DroidSansDallback.ttf 的“精简版”(大约 1MB),则 3MB 字体可以正常工作。
这里有什么问题?我错过了什么吗?看起来所有已安装/使用的字体加起来不能超过 somehwat ~4MB。
有人遇到过同样的问题吗?我在 NexusOne (2.1)、HTC Hero(2.1)、SonyEricson Xperia (1.6) 和 Motorola MileStone(2.0) 上尝试过,都表现出相同的行为。
感谢任何提示。
【问题讨论】:
-
它在我看来确实像一个错误。