【问题标题】:Issue in changing the color of a word in strings.xml更改 strings.xml 中单词颜色的问题
【发布时间】:2015-12-31 05:59:57
【问题描述】:

我为AlertDialog 创建了一个布局,其中有一个显示一些文本的TextView。对于文本,我在 strings.xml 中有一个项目,我想在其中更改单个单词的颜色,如下图所示。 我试过这个:

<string name="dialog_text">Text... <font fgcolor="#000000">TheWordIWantInBlack</font> text text text.</string>

问题是当我在设备 (Galaxy Note3) 上运行此程序时,它会显示对话框中的所有文本,除了 &lt;font&gt; 标记中的单词但在模拟器上 (Nexus 5 with Android 6.0) 一切正常,正是我想要的。 你能帮帮我吗?

【问题讨论】:

    标签: android xml string text colors


    【解决方案1】:

    fgcolor 中,将#000000 替换为black,就像

    <string name="dialog_text">Text... <font fgcolor="black">TheWordIWantInBlack</font> text text text.</string>
    

    这只适用于相对较短的内置颜色列表:浅绿色、黑色、蓝色、紫红色、绿色、灰色、石灰、栗色、海军蓝、橄榄色、紫色、红色、银色、蓝绿色、白色、和黄色

    【讨论】:

      【解决方案2】:

      以 Spannable String 为例

      final SpannableStringBuilder sb = new SpannableStringBuilder("Allow ");
      SpannableString s1 = new SpannableString("WhatsApp");
      s1.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, s1.length(), 0);
      sb.append(s1);
      

      而 sb 现在是“允许 WhatsApp

      在此示例中,我使用 Bold 类型作为样式字符串,但当然您可以根据自己的喜好设置字体颜色和其他属性来自定义它。

      【讨论】:

      • 感谢这个解决方案,但我需要 strings.xml 中的文本
      • 为什么?您还可以将文本保存在字符串中,并使用 Spannable String 格式化子文本的样式。
      • 当我在 Google Play 上发布应用程序时,我必须为许多国家/地区翻译文本,因此我需要单个字符串中的文本。我想了解为什么我的解决方案在模拟器中有效,但在设备上无效
      猜你喜欢
      • 2013-11-06
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多