【问题标题】:spannable on android for textView在 android 上可跨 textView
【发布时间】:2013-01-28 05:07:48
【问题描述】:
Tweet o = tweets.get(position);

TextView tt = (TextView) v.findViewById(R.id.toptext);
//TextView bt = (TextView) v.findViewById(R.id.bottomtext);         

EditText bt =(EditText)findViewById(R.id.bottomtext);
bt.setText(o.author);
Spannable spn = (Spannable) bt.getText();
spn.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC)
, 0, 100, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  

//bt.setText(o.author);    
tt.setText(o.content);

我正在我的 Android 应用程序中设置 twitter 数据。我想使用 Spannable 使字体变为粗体和斜体,但它不起作用,出现错误。我该怎么做?

【问题讨论】:

  • 它给出的已停止意外错误。通常代码工作,但我想让字体加粗。它给出了这个错误。
  • 请发布 LogCat 输出,但有例外。很可能您正在尝试将跨度应用到文本末尾之外 - 使用实际长度而不是 100
  • 这个方法可能有用stackoverflow.com/a/44255840/3496570

标签: java android twitter spannable


【解决方案1】:

我想通过 spannable 将字体设为粗体和斜体

为此,您需要将o.content 文本设置为SpannableString,然后将其设置为 TextView:

SpannableString spannablecontent=new SpannableString(o.content.toString());
spannablecontent.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 
                         0,spannablecontent.length(), 0);
// set Text here
tt.setText(spannablecontent);

编辑: 您还可以使用 Html.fromHtml 在 textview 中将文本设为粗体和斜体:

tt.setText(Html.fromHtml("<strong><em>"+o.content+"</em></strong>"));

【讨论】:

  • spannablecontent.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 0,spannablecontent.length(), 0);
  • @baran : 你也可以使用Html.fromHtml 使文本变为粗体和斜体
  • 如何在此处添加图像。有什么方法可以像加粗文本一样添加图像?
  • @Aada : 只需使用 ImageSpan ,在 Google 上搜索 ImageSpan 你会得到很多结果
  • 如何使用自定义字体?
【解决方案2】:

创建spannable 文本bolditalic 以设置为TextView 的简单方法是使用Html.fromHtml() 方法:

并使用 html 元素 &lt;b&gt;&lt;i&gt;

myTextView.setText(Html.fromHtml("<b><i>my text bold and italic!</i></b>"));

或html元素&lt;strong&gt;&lt;em&gt;

   myTextView.setText(Html.fromHtml("<strong><em>my text bold and italic!</em></strong>"));

【讨论】:

    【解决方案3】:
    SpannableString hint = new SpannableString(o.content.toString());
    

    字体大小

    hint.setSpan(new RelativeSizeSpan(0.9f), 0, hint.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
    

    字体系列

    hint.setSpan(new TypefaceSpan("sans-serif"), 0, hint.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
    

    斜体

    hint.setSpan(new StyleSpan(Typeface.ITALIC), 0, s.length(), 0);
    

    颜色

    hint.setSpan(new ForegroundColorSpan(Color.GRAY), 0, hint.length(), 0);
    

    粗体

    hint.setSpan(new StyleSpan(Typeface.BOLD), 0, hint.length(), 0);
    

    参考链接: https://www.programcreek.com/java-api-examples/index.php?api=android.text.style.RelativeSizeSpan

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-25
      • 2015-12-31
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      相关资源
      最近更新 更多