我有自定义字体似乎无法在Android上加载。 具体来说,我从Activity中以正常方式加载它,然后在TextView上设置它:
AssetManager assetManager = getAssets();
Typeface tf = Typeface.createFromAsset(assetManager, "euro.ttf");
textView.setTypeface(tf);
我得到的东西根本不符合自定义字体,似乎没有任何错误(我看过logcat并没有注意到任何东西)。
我已阅读an old article,其中说Android存在某些字体的问题,并默默地故障转移到Droid Sans。
请注意Android似乎没有 像所有TrueType字体一样。我花了很多钱 时间试图找出我的意思 这个样本做错了, 在切换到不同的字体之前, 一切都“正常”。什么时候 Android不喜欢自定义字体 似乎比提出一个例外 替代Droid Sans(“sans”) 悄悄。所以,如果你试图使用 不同的字体,它似乎没有 工作,可能是字体 问题与Android不兼容, 无论出于何种原因。
所以我的问题是,是否有人知道如何进一步解决这个问题。或者“无论什么原因”可能是什么?我为字体文件尝试了不同的名称,甚至是它的不同副本。字体文件似乎在我的桌面上正常工作(我可以用OS X打开它并查看字符,它们看起来是正确的)。另外,对另一种字体使用不同的ttf文件似乎确实有用(因此它似乎与设置/代码无关,而是必须与文件本身有关)。
答案 0 :(得分:1)
很抱歉,自从我三年前写了这篇文章(喘气!)以来,我还没有遇到任何其他问题。
如果您可以访问字体编辑器,可以考虑打开字体文件并重新保存,以查看是否可以清除其中可能存在的任何问题。
或者,如果有一些实用程序浮动,基本上是“字形差异” - 报告哪些字形是字体A而不是字体B - 你可能会看到你正在尝试的字体中是否有一些有趣的缺失。从我所看到的,一个丢失的字形通常只会产生一个垃圾字符(例如,空方块),但也许有一些特殊的Android取决于你想要的字体没有。
推动谚语,如果您可以访问字体编辑器,您可以尝试将失败字体文件中的字形复制到新的字体文件中,看看是否最终有效。
::在此处插入强制性的watch-for-font-licensing-issues模糊::
我似乎记得我花了几次尝试找到一个有效的免费字体,早在08年。