基于语言的Android textview字体

时间:2018-03-18 04:39:45

标签: android fonts textview

是否有处理字体的一般方法,如果它是中文我使用自定义字体,如果英语然后我回到默认字体?感谢。

1 个答案:

答案 0 :(得分:0)

这是我的2美分。您可以使用Calligraphy库轻松更改整个应用或特定TextView的自定义字体。

  • 如果您想为整个应用程序执行此操作,那么我能想到的一个解决方案是:

    1. 在您的应用中,您可以收听BroadcastACTION_LOCALE_CHANGED
    2. 在侦听器内部检查区域设置是Locale.SIMPLIFIED_CHINESE还是Locale.TRADITIONAL_CHINESE,然后更改应用的字体。
  • 如果您想以编程方式更改让我们说部分文字的字体,那么您可以使用CalligraphyTypefaceSpan所述Multiple Typeface's per TextView / Spannables部分:

    SpannableStringBuilder sBuilder = new SpannableStringBuilder();
    sBuilder.append("Hello!") // Bold this
    .append("I use Calligraphy"); // Default TextView font.
    // Create the Typeface you want to apply to certain text
    CalligraphyTypefaceSpan typefaceSpan = new 
    CalligraphyTypefaceSpan(TypefaceUtils.load(getAssets(), "fonts/Roboto-Bold.ttf"));
    // Apply typeface to the Spannable 0 - 6 "Hello!" This can of course by dynamic.
    sBuilder.setSpan(typefaceSpan, 0, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    setText(sBuilder, TextView.BufferType.SPANNABLE);
    

希望它有所帮助。

P.S:我不以任何方式加入图书馆。我是一个快乐的用户。