在Android中以编程方式创建样式,无需参考资源

在Android中以编程方式创建样式,无需参考资源,android,dynamic,styles,spannablestring,Android,Dynamic,Styles,Spannablestring,我正在开发一个应用程序,它从XML文档中读取文本,然后在屏幕上显示该文本。我希望能够基于XML文档中给定的参数(字体、大小、颜色、粗体/斜体等)以编程方式创建TextAppearanceSpan对象,这些参数不依赖于资源文件(对于我的文本视图中的spannablestings) 我正在查看以下构造函数: TextAppearanceSpan(字符串系列、int样式、int大小、ColorStateList颜色、ColorStateList链接颜色) 但是我似乎找不到任何关于ColorStateL

我正在开发一个应用程序,它从XML文档中读取文本,然后在屏幕上显示该文本。我希望能够基于XML文档中给定的参数(字体、大小、颜色、粗体/斜体等)以编程方式创建
TextAppearanceSpan
对象,这些参数不依赖于资源文件(对于我的文本视图中的
spannablesting
s)

我正在查看以下构造函数:

TextAppearanceSpan(字符串系列、int样式、int大小、ColorStateList颜色、ColorStateList链接颜色)


但是我似乎找不到任何关于
ColorStateList
s如何工作的信息。我想做的是可能的吗?

您可以在这里查看ColorStateList的源代码:

例如,以下XML选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@color/testcolor1"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
   <item android:state_enabled="false" android:color="@color/testcolor3" />
   <item android:color="@color/testcolor5"/>
 </selector>

有关什么是颜色状态以及选择器如何工作的文档。

您可以在此处查看ColorStateList的源代码:

例如,以下XML选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@color/testcolor1"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
   <item android:state_enabled="false" android:color="@color/testcolor3" />
   <item android:color="@color/testcolor5"/>
 </selector>
有关颜色状态和选择器工作方式的文档如下所示