【问题标题】:android: string format specify boldandroid:字符串格式指定粗体
【发布时间】:2011-12-12 08:42:01
【问题描述】:

我在string.xml 中定义了一个字符串

<string name="eventtitle">Title: %1$s </string>

使用 string.format 格式化。如何定义字符串以仅获取 Titel: as Bold.

提前感谢您的帮助

【问题讨论】:

    标签: android


    【解决方案1】:

    实际上,许多答案都已过时。在自己研究之后,我发现最好的答案是@Wahib 的答案。这是改进的版本:

    将字符串资源定义为:

    <string name="styled_text">Hey, &lt;b>this is bold&lt;/b> text</string>
    

    像这样使用资源:

    String text = getResources().getString(R.string.styled_text);
    CharSequence styledText = HtmlCompat.fromHtml(text, HtmlCompat.FROM_HTML_MODE_LEGACY);
    textview.setText(styledText);
    

    结果如下:

    【讨论】:

      【解决方案2】:

      现在,Android 合理地支持它。

      您可以将xml中的字符串定义为&lt;string name="text_to_show"&gt;Hey &amp;lt;b&gt;This is in bold&amp;lt;/b&gt;

      然后在代码中,使用它来转换为 CharSequence,然后在 TextView 中使用它

      String text = getResources().getString(R.string.text-to_show);
      CharSequence styledText = Html.fromHtml(text);
      textview.setText(styledText);
      

      【讨论】:

        【解决方案3】:

        现在,Android 合理地支持它。

        how to add styling within a string这个问题我已经给出答案了

        【讨论】:

        【解决方案4】:

        你可以这样做,

        textView.setText(Html.fromHtml("<b>Title</b>: Text"));
        

        如果您有动态方式的文本..

        要在 Strings.xml 中定义格式,您可以这样做,

        <string name="text1">This text uses <b>bold</b> and <i>italics</i> 
        by using inline tags such as <b> within the string file.</string>
        

        This Link

        【讨论】:

        • Html.fromHtml() 现已弃用
        • 您在哪里发现它已被弃用?他们在 API 24 中添加了新方法。
        【解决方案5】:

        您必须在显示 in 的 TextView 中设置字符串的样式。看到这个link

        【讨论】:

        【解决方案6】:

        您可以使用 HTML 标记,例如 "&lt;b&gt;BOLD&lt;/b&gt; other text ..."
        请参阅this Google resource 了解更多信息。

        【讨论】:

          【解决方案7】:
          Typeface tfaerial=Typeface.createFromAsset(getAssets(),"fonts/aerial.ttf");
          Typeface tfTradeGothicLight=Typeface.createFromAsset(getAssets(), "fonts/TradeGothic-Light.OTF");
          
          String strt_title_desc=this.getResources().getString(R.string.eventtitle);
          

          int upto=strt_title_desc.indexOf(":"); //你可以指定5个

           if (strt_title_desc!=null)
              {
                  aboutAuthTV.setTextColor(Color.BLACK);
                  aboutAuthTV.setLineSpacing(1.2f, 1.5f);
                  aboutAuthTV.setTextSize(23);
              SpannableString SS = new SpannableString(strt_title_desc);
              SS. setSpan ( new StyleSpan(tfTradeGothicLight.getStyle()), 0, upto,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
              SS. setSpan ( new StyleSpan(tfaerial.getStyle()), upto, strt_dialog_desc.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
              yourtextView.setText(SS);
          }
          

          //这个用于改变字体大小、样式和颜色

          String str="<font size =\"20\"><B>Bold</B> <br/> Then Normal Text<br/>
                                   <i>Then Italic</i> </font>" +
                                 "<br/> <font color=\"green\" >this is simple sentence </font>" +
                                 "<br/><br/><br/><br/><a>this is simple sentence</a>";
                Spanned strHtml= Html.fromHtml(str);
          
                 TextView tv = (TextView)findViewById(R.id.textView);
                 tv.setText(strHtml);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-31
            • 1970-01-01
            • 2011-11-07
            • 2023-03-14
            • 1970-01-01
            相关资源
            最近更新 更多