在 API 级别 28 中弃用了文本颜色

Text colors are deprecated in API level 28

我有代码:

val color = if(...)
              android.R.color.darker_gray
            else
              android.R.color.secondary_text_dark

android.R.color.secondary_text_dark 现在是 deprecated in API level 28,表示 "Use a text color from your theme instead."。有一个列出的常量值和一个括号“17170437 (0x01060005)”,但我无法理解这些颜色值,因为它们不能放在 colors.xml 中,因为颜色十六进制值应该采用 [=14= 等格式].

谁能告诉我那些常量是什么意思?文本颜色与通常的颜色有不同的处理方式吗?如果我想保持相同的行为,我应该如何提取这些颜色值?

进一步挖掘后,我意识到 android.R.color.secondary_text_dark 实际上不是颜色值,而是 secondary_text_dark.xml:

文件名中的选择器本身
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="false" android:color="@android:color/dim_foreground_dark_disabled"/>
<item android:state_window_focused="false" android:color="@android:color/dim_foreground_dark"/>
<item android:state_selected="true" android:state_enabled="false" android:color="@android:color/dim_foreground_dark_inverse_disabled"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/dim_foreground_dark_inverse_disabled"/>
<item android:state_selected="true" android:color="@android:color/dim_foreground_dark_inverse"/>
<item android:state_activated="true" android:color="@android:color/bright_foreground_dark_inverse"/>
<item android:state_pressed="true" android:color="@android:color/dim_foreground_dark_inverse"/>
<item android:state_enabled="false" android:color="@android:color/dim_foreground_dark_disabled"/>
<item android:color="@android:color/dim_foreground_dark"/> 
</selector>

有了它,我可以将它的内容复制到我的 res/animator 文件夹中,提取它引用的所有颜色值,然后从我的代码中调用 R.animator.secondary_text_dark