0

我正在尝试设置这样的字体:

    Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/myfont.ttf");
    textView.setTypeFace(tf);

但是,它适用于像 Helvetica 或类似的一些字体,但是当我尝试加载其他一些字体时,它会忽略我的字体并加载 android 的默认字体。

我检查了很多答案,一位用户说

Android 在无法设置字体的那一刻,不会抛出异常,而是放置系统默认字体。

但这显然不是答案。

我能做些什么?

我什至检查了 的源代码TextView,这导致我TextPaint,并导致TextPaintPaint但无法真正找到关于我的问题的解决方案。

帮助将不胜感激。

谢谢。

4

2 回答 2

0

但这显然不是答案。

好吧,在语法上它有问题,但它就是答案。自 Android 1.0 以来,Android 一直存在加载字体的问题,并且 API forTypeface不报告成功或失败。

我能做些什么?

测试你的字体,看看哪些字体有效。

如果您已经授权修改字体,您可以尝试将其加载到字体编辑器中并再次保存,看看是否是字体文件格式的问题。

或者,对AOSP进行更改以改进字体处理,然后等待几年让这些更改适用于大多数 Android 设备。

于 2013-10-11T10:58:58.207 回答
0

尝试使用SpannableStringBuilder它的字体会起作用,,

String stringResult="Your unicode string";
            SpannableStringBuilder SS = new SpannableStringBuilder(stringResult);
            Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/myfont.ttf");
            if(tf != null)
            {
                    SS.setSpan (new CustomTypefaceSpan("", tf), 0, stringResult.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
            }

            textView.setText(SS);
于 2013-10-11T11:08:24.490 回答