在 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
。
我有代码:
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
。