我正在尝试将styles.xml中定义的自定义样式应用于TextView
中的一部分字符串。我尝试将SpannableStringBuilder
与StyleSpan
一起使用,但这似乎不起作用。希望对此有任何指点。这是我的代码现在的样子:
styles.xml
<style name="damn_red">
<item name="android:textColor">@color/f_red_800</item>
<item name="android:background">@color/f_red_800</item>
<item name="android:text">@color/f_red_800</item>
</style>
Activity.java
SpannableStringBuilder spannable = new SpannableStringBuilder();
spannable.append("Some ")
.append("text ", new StyleSpan(R.style.damn_red), Spanned.SPAN_INCLUSIVE_INCLUSIVE)
.append("this is");
TextView textView = findViewById(R.id.mytextview);
textView.setText(spannable, TextView.BufferType.SPANNABLE);
我在这里查看了多个问题,但是找不到任何可以回答这个问题的问题。将不胜感激这里的任何指针。谢谢!
答案 0 :(得分:0)
StyleSpan
可以设置文本是粗体,斜体还是普通文本。
跨度,可以设置所附加文本的样式。可能的样式为:Typeface.NORMAL,Typeface.BOLD,Typeface.ITALIC和Typeface.BOLD_ITALIC。
我认为您正在寻找的是TextAppearanceSpan
。来自"Styles and Themes":
样式的一个限制是只能将一种样式应用于视图。但是,在TextView中,您还可以指定TextAppearance属性,该属性的作用类似于样式...
该应用程序与您当前正在执行的操作类似。如果这样做不能满足您的所有需求,请查看complete list of span types。