0

我住在匈牙利,我们有一些特殊字符,例如:ő、ű...等

在我的 android 应用程序中,我制作了一个自定义 TextView。这个自定义的 TextView 在它的构造函数中设置了一个自定义的字体,它可以正常工作,除了一个小错误。

特殊字符如: "ő" ,不转换新字体,它保持相同的默认字体。

在这里看我的照片,

(也许是一些字符编码的东西,或者我真的不知道......)

(我使用的字体是 Helvetica Neue Light,如果我从电脑中的 Windows/Fonts 文件夹打开,我可以看到特殊字符,所以这意味着这个字体确实有“ő”字符,但由于某些原因 android 无法正确处理它.)

如果可以的话请帮忙!谢谢!

编辑:

我的自定义 textView 类:

public class FlexiTextView extends TextView {

public FlexiTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    initView(context);
}

public FlexiTextView(Context context) {
    super(context);
    initView(context);
}

public FlexiTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    initView(context);
}

private void initView(Context context) {


    try {
        Typeface typeface = Typeface.createFromAsset(context.getAssets(), "fonts/helveticaneue.ttf");
        this.setTypeface(typeface);
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

}
4

2 回答 2

1

看起来很简单,您使用的字体不支持某些字符。像ö, œ, or这样â的字符不仅仅是一个带有重音的基本字母,它们(在字体中)被设计为一个新的和不同的字符。这就是为什么您必须选择支持您的语言特殊字符的字体。否则,可能会使用默认系统字体。

于 2013-11-22T11:54:28.490 回答
0

问题在于您尝试设置它的设备。只需尝试查找具有相同字体的其他 .ttf 即可。并且不要这样设置字体!Typeface.createFromAsset()太贵了。为此使用缓存。保存您的性能的链接

于 2017-10-11T16:01:05.353 回答