android - 如何将styles.xml中的样式应用到span?
问题描述
我正在尝试将 styles.xml 中定义的自定义样式应用于TextView
. 我尝试使用SpannableStringBuilder
with StyleSpan
,但这似乎不起作用。希望对此有任何指示。这是我的代码现在的样子:
样式.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>
活动.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);
我在这里查看了多个问题,但找不到任何可以回答这个问题的问题。将不胜感激这里的任何指针。谢谢!
解决方案
AStyleSpan
可以设置文本是粗体、斜体还是正常。
跨度允许设置它附加到的文本的样式。可能的样式有:Typeface.NORMAL、Typeface.BOLD、Typeface.ITALIC 和 Typeface.BOLD_ITALIC。
我认为您正在寻找的是TextAppearanceSpan
. 来自“风格和主题”:
样式的一个限制是您只能将一种样式应用于视图。但是,在 TextView 中,您还可以指定一个 TextAppearance 属性,该属性的功能类似于样式...
该应用程序类似于您当前正在执行的操作。如果这不能满足您的所有需求,请查看span types 的完整列表。
推荐阅读
- directx - DirectX11可以将负值写入纹理格式化的浮点数吗?
- azure-devops - 链接到 KeyVault 的 Azure DevOps 变量组的“全选”选项
- excel - 遍历列,如果值为 1,则从上面复制并粘贴
- ios - apns-collapse-id (iOS) 如何与 Firebase 一起使用?
- jquery - jquery 遍历 div 的正确顺序不起作用?
- wordpress - 将 Docker 容器连接到 GitHub - 当使用 docker-compose.yml 创建 docker 映像时
- c++ - 直接在函数调用时将向量(从函数返回)复制到另一个向量的特定点,而不需要额外的临时变量 [c++]
- botframework - Microsoft Bot 框架中使用 Direct Line 的 LivePerson“欢迎事件”的入口点
- javascript - 在更改时处理 JS 事件值
- git - 如何在我的计算机上获取另一个用户创建的远程分支