【问题标题】:wants to have multiple text display styles in a single textview想要在单个文本视图中有多种文本显示样式
【发布时间】:2012-05-25 20:05:38
【问题描述】:

我正在开发一个 android 应用程序,我想知道如何在常规粗体和斜体中添加少量单词,例如,我有一个带有文本 HELLOO 的文本视图,现在我想在文本视图中显示这样的文本

地狱OO

请告诉我如何通过android中的样式来实现这一点??

【问题讨论】:

标签: android xml android-layout styles


【解决方案1】:

<b> 已弃用。使用<strong><em> 而不是<i>

text1.setText(Html.fromHtml("<strong>bold text</strong> normal text <em>italic text</em> "));

【讨论】:

    【解决方案2】:

    假设你有一个TextView,即etx,使用如下代码:


     final SpannableStringBuilder sb = new SpannableStringBuilder("HELLOO");
    
            final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); // Span to make text bold
            final StyleSpan iss = new StyleSpan(android.graphics.Typeface.ITALIC);Span to make text italic
            sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make first 4 characters Bold 
            sb.setSpan(iss, 4, 6, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make last 2 characters Italic
            etx.setText(sb);
    

    使用这种方法的主要优点是您可以动态格式化文本。

    【讨论】:

    • 当您使用 SpannableStringBuilder 时,您必须使用此 TextView 方法设置文本:setText(int resid, TextView.BufferType type) 所以您的代码必须是:etx.setText(sb, TextView.BufferType.SPANNABLE );
    • @GBouerat 我想你说的是setText (CharSequence text, TextView.BufferType type) 而不是setText (int resid, TextView.BufferType type)。我总是用setText (CharSequence text) 方法得到完美的结果。那么,请您解释一下为什么不应该使用这种方法以及上述方法的优点。
    • 如果我不知道要设置样式的文本长度怎么办,但我想设置整个文本的样式
    • @AnoopssGolden 文本长度可以通过length()方法轻松获取。
    • 是的,可以做到。它是一个大型活动,包含数千个视图。这种样式的视图每次都被夸大了。所以我想尽量减少处理。
    【解决方案3】:

    如果你想让它加粗使用 b 标签。如果你想让它是斜体使用 i 标签。如果你想让一个单词加粗或斜体,把那个单词放在标签内。

     <resources> 
    <string name="register"> <u><b><i>SignUp</i></b></u> </string>
    </resources>
    

    【讨论】:

      【解决方案4】:
      String text="<html>"+"<b>"+"Hell"+"</b>"+"<i>"+"oo"+"</i>"+"</html>";
      

      【讨论】:

        【解决方案5】:

        如果您在 strings.xml 中有字符串,那么。

        <string name="startup"><b><i>HELL</i></b><i>oo</i></string> 
        

        你可以在&lt;string&gt; &lt;/string&gt;里面使用HTML标签

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-31
          • 2019-11-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多