函数返回spannable并将其附加到textview中的字符串

时间:2013-12-25 03:01:53

标签: android text styles textview spannable

我正在尝试创建一个将字符串“word”作为参数的函数,将span样式应用于字符串并将其作为spannable字符串返回,我可以""+insert+""将其作为TextView中的字符串返回1}}。提前感谢您提供的任何帮助。

这是我到目前为止的功能。

public Spannable fr(String word){
  Spannable WordtoSpan = new SpannableString(word);        
  WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 
      word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  WordtoSpan.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, 
      word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  return WordtoSpan;
}

以及应该显示与我的文本内联的spannable的代码。

TextView tview = (TextView) findViewById(R.id.accents_view);
tview.setText(Html.fromHtml("<strong>Text String</strong> "+fr("style_this"));

应用程序将加载文本而不进行样式化,否则应用程序将崩溃。不知道我做错了什么,但我猜这与混合fromHtml文本和spannables有关。有什么工作吗?

如果我删除Html.fromHtml()并使用我的fr()函数包装整个文本,它就可以正常工作。我得到大胆的蓝色文字。但我需要能够只设置某些单词的样式...能够从我的string.xml文件中引用变量而不是硬编码它们也是很好的,以获得多语言支持。

1 个答案:

答案 0 :(得分:0)

我想你可能会觉得这很有帮助,

TextView tview = (TextView) findViewById(R.id.accents_view);
tview.setText(Html.fromHtml("<font color='blue'>Text</font> " 
    + "<font color='red'>String</font>"));