更改Android字体类型无效

5

我正在使用以下代码行来更改android应用程序中的字体类型:

Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/Abumohammed.ttf"); 
textView.setTypeface(font);

我确定Abumohammed.ttfassets/fonts文件夹中..但是字体没有改变,并且对textview没有任何影响!!

你是如何确定“textview已经消失了”的?你是否使用层次结构视图来查看它在哪里或为什么没有显示出来? - CommonsWare
好的,抱歉,它并没有消失,但是新的字体没有任何效果。 - Adham
@Adham 我已经使用了你提供的链接中的一个字体,例如(Aljazeera.ttf),它运行良好。 - Android Stack
@Adham 你提供的链接中所有字体都很好用,太棒了。 - Android Stack
2个回答

4

安卓不支持所有字体文件,通常失败时会默默地显示默认字体。我不知道安卓对某些字体有何不满。

我建议您使用一些确定可用的字体,比如这个,以确保代码的其余部分没有问题。如果您确认字体文件无法工作,据我所知,您只能寻找其他字体。


正如您在此链接中所见http://www.4shared.com/folder/O2GzNe_h/android_Arabic_fonts.html >>当我提取文件并使用它们的字体时,我遇到了这个问题,尽管它应该在Android上正常工作。 - Adham
@Adham:我能告诉你的就是我的回答中包含了所有你需要做的事情。或者,你可以尝试我的整个示例项目:https://github.com/commonsguy/cw-omnibus/tree/master/Fonts/FontSampler - CommonsWare

2
我感到非常烦恼,所以我想分享一下我的调查结果。我尝试了几个字体文件,最终使用了回退字体。为了“修复”其中的一些文件,我只需要在FontForge中打开文件,然后选择文件->生成字体并重新保存为TTF格式。这样可以使一些未显示的内容正确绘制。
其他文件需要将字形从Microsoft区域(U+F030)移动到U+0030范围。
我还没有了解“生成字体”实际上是什么。但是,现在我知道如何修复它,至少可以开始弄清楚为什么它不起作用。我怀疑这只能在AOSP树中修复。

这个应用程序 FontForge 对我很有帮助!+1 - Oleksii K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接