【问题标题】:modification font in runtime运行时修改字体
【发布时间】:2012-10-15 15:40:54
【问题描述】:

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

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

【问题讨论】:

  • 我很想知道您为什么要考虑合并两个字体文件?以后需要添加多个字符吗?
  • 不,我只需要再添加一个字符支持
  • 啊,我明白了。在这种情况下,我认为 Hari 提供的链接是您最好的选择。

标签: android fonts


【解决方案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
    

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

看看有没有用。

【讨论】:

    猜你喜欢
    • 2018-04-11
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2010-10-28
    • 2010-12-08
    相关资源
    最近更新 更多