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

问题描述 投票:1回答:1

我有代码:

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,它表示“改为使用主题中的文本颜色。”。有一个列出的常量值和括号“ 17170437(0x01060005)”,但由于这些颜色值不能放入colors.xml中,因此我无法理解这些颜色值,因为颜色十六进制值应采用"#ffxxxx"这样的格式。

有人可以告诉我这些常数的含义是什么?文字颜色与通常的颜色有不同的处理方法吗?如果我想保持相同的行为,应该如何提取这些颜色值?

我有代码:val color = if(...)android.R.color.darker_gray else android.R.color.secondary_text_dark值android.R.color.secondary_text_dark现在是... [

[进一步研究之后,我意识到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
android android-9.0-pie android-text-color
1个回答
0
投票
[进一步研究之后,我意识到android.R.color.secondary_text_dark实际上不是颜色值,而是secondary_text_dark.xml文件名中的选择器本身:
© www.soinside.com 2019 - 2024. All rights reserved.