我住在匈牙利,我们有一些特殊字符,如:ő,ű...等
在我的Android应用程序中,我制作了自定义TextView。这个自定义TextView在其构造函数中设置了一个自定义字体,它可以正常工作,除了一个小bug。
特殊字符如:“ő”,不会转换新字体,它仍然是相同的默认字体。
,
(也许有些字符编码稀薄或我真的不知道...)
(我使用的字体是Helvetica Neue Light,如果我从我的电脑中的Windows / Fonts文件夹打开,我可以看到特殊字符,所以这意味着这个字体确实有“ő”字符,但有些原因android不能妥善处理。)
如果可以,请帮忙!谢谢!
E D I T:
我的自定义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();
}
}
}
答案 0 :(得分:1)
看起来很简单,你使用的字体不支持某些字符。像ö
,œ
或â
这样的字符不仅仅是带有重音的基本字母,它们(在字体中)被设计为新的和不同的字符。这就是为什么你必须选择支持你的语言特殊字符的字体。否则,可能会使用默认的系统字体。
答案 1 :(得分:0)
问题在于您尝试设置它的设备。只是尝试找到具有相同字体的其他.ttf。并且不要这样设置字体! Typeface.createFromAsset()
太贵了。为此使用缓存。 link which saves your performance