0

有没有办法在运行时为android修改字体或组合两个字体文件。我需要为字体添加更多字符支持。

因为,如果字体文件中不存在字符,设备会为该字符显示一个正方形。

4

1 回答 1

1

如果您知道哪些字符会给您带来麻烦,那么您可能想试试这个:

  1. 找到这些字符的位置,让它们是 i、j、k(等等),让 N 是完整字​​符串的大小。
  2. 然后做类似的事情:

    String yourString = "Some Text Here"; // this is you string
    Spannable spannable = new SpannableString(yourString);
    // you can also iterate, instead of next few steps
    // typeface1 and typeface2 are your two different font styles
    spannable.setSpan(typeface1, 0, i-1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    spannable.setSpan(typeface2, i, i+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    spannable.setSpan(typeface1, i+1, j-1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    spannable.setSpan(typeface2, j, j+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    spannable.setSpan(typeface1, j+1, k-1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    spannable.setSpan(typeface2, k, k+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // and so on
    spannable.setSpan(typeface1, k+1, N, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    textview1.setText(spannable); // this is your textview and setting of font
    

或者您可以创建您的自定义字体并将其应用于您想要的视图。因为您可以为所有字符应用第一个字体,除了它无法处理的字符。对于那些,你可以申请第二个。我不知道这有多可行。我会试一试,让你知道。

看看这个有没有用。

于 2012-10-15T07:40:54.470 回答