如何指定android自定义颜色资源:日/夜/高对比度

如何指定android自定义颜色资源:日/夜/高对比度,android,android-resources,android-theme,android-accessibility,android-color,Android,Android Resources,Android Theme,Android Accessibility,Android Color,Android支持白天/晚上模式,支持 。/values/colors.xml和 。/values night/colors.xml 如果我想添加另一个颜色文件夹,比如说高对比度颜色 (。/values highconst/colors.xml),是否有办法添加额外的颜色文件夹,并使其在满足特定条件的基础上选择该额外文件夹中的颜色 我曾想过使用标准的theme.xml、高对比度的theme.xml来实现这一点,当我们尝试为每个主题添加昼夜模式时,如果有多个开发人员在项目中工作,那么管理和维护就会

Android支持白天/晚上模式,支持

。/values/colors.xml

。/values night/colors.xml

如果我想添加另一个颜色文件夹,比如说高对比度颜色

。/values highconst/colors.xml
),是否有办法添加额外的颜色文件夹,并使其在满足特定条件的基础上选择该额外文件夹中的颜色


我曾想过使用标准的theme.xml、高对比度的theme.xml来实现这一点,当我们尝试为每个主题添加昼夜模式时,如果有多个开发人员在项目中工作,那么管理和维护就会变得更加困难。我们如何做到这一点?

您必须像下面那样定义attrs.xml ..res/values/attrs.xml

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <declare-styleable name="tm">
     <attr name="background_color" format="color" />
     <attr name="card_background" format="color" />
     <attr name="text_color" format="color" />
     <attr name="tint_color" format="color" />
     <attr name="button_color" format="color" />
     <attr name="button_text_color" format="color" />
     <attr name="icon_color" format="color" />
     <attr name="toolbar_color" format="color" />
     <attr name="toolbar_content_color" format="color" />
     <attr name="edit_text_background" format="color" />
     <attr name="edit_text_color" format="color" />
     <attr name="edit_text_hint" format="color" />
 </declare-styleable>
</resources>

然后在中定义样式 ../res/值/样式如下

 <!-- Base application theme. -->
<!-- Base light/day theme. -->
<style name="darkTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="background_color">#fcffe3</item>
    <item name="card_background">#2d2e30</item>
    <item name="text_color">#999797</item>
    <item name="toolbar_color">@color/black</item>
    <item name="toolbar_content_color">@color/yellowText</item>
    <item name="tint_color">@color/colorAccent</item>
    <item name="button_color">@color/colorPrimary</item>
    <item name="model_item_color">@color/colorPrimary</item>
    <item name="icon_color">@color/colorAccent</item>
    <item name="text_icon_dr">@color/black</item>
    <item name="button_text_color">@color/black</item>
    <item name="hint_color">#6e6f70</item>
    <item name="btn_color">@color/yellowButton</item>
    <item name="edit_text_background">@color/white</item>
    <item name="edit_text_color">@color/black</item>
    <item name="edit_text_hint">@color/brown_400</item>
    <item name="text_bg_white">@color/black</item>
</style>

<!-- Base dark/night theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">#9c2917</item>
    <item name="background_color">@color/colorPrimary</item>
    <item name="card_background">#d3d6d7</item>
    <item name="text_color">@color/white</item>
    <item name="toolbar_color">@color/white</item>
    <item name="toolbar_content_color">@color/yellowText</item>
    <item name="tint_color">#d1d100</item>
    <item name="button_color">@color/colorPrimary</item>
    <item name="model_item_color">@color/colorPrimary</item>
    <item name="icon_color">#331611</item>
    <item name="text_icon_dr">@color/colorAccent</item>
    <item name="button_text_color">@color/black</item>
    <item name="hint_color">#9ef9f9f9</item>
    <item name="edit_text_background">@color/white</item>
    <item name="edit_text_color">@color/black</item>
    <item name="edit_text_hint">@color/brown_400</item>
    <item name="text_bg_white">@color/black</item>
    <item name="btn_color">@color/yellowButton</item>
</style>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音
#fcffe3
#2d2e30
#999797
@颜色/黑色
@彩色/黄色文本
@颜色/颜色重音
@颜色/原色
@颜色/原色
@颜色/颜色重音
@颜色/黑色
@颜色/黑色
#6e6f70
@颜色/黄色按钮
@颜色/白色
@颜色/黑色
@颜色/棕色\u 400
@颜色/黑色
@颜色/原色
@颜色/原色暗
#9c2917
@颜色/原色
#d3d6d7
@颜色/白色
@颜色/白色
@彩色/黄色文本
#D100
@颜色/原色
@颜色/原色
#331611
@颜色/颜色重音
@颜色/黑色
#9ef9f9f9
@颜色/白色
@颜色/黑色
@颜色/棕色\u 400
@颜色/黑色
@颜色/黄色按钮
这对我来说是多主题的作品
希望对您有所帮助

您可以使用下面的模式在不使用attr.xml的情况下实现您提到的目标@color/Primary,然后在values和values night colors中指定不同的颜色,如下所示:../values/colors.xml->#FFFFFF../values night/colors.xml->#00000并在代码中使用AppCompatDelegate.setDefaultNightMode(MODE_night_YES)并根据需要更改模式。我想要../values highcontrst/colors.xml。我想要一个像../values highcontrst/colors.xml这样的文件夹,我想在这个文件夹中指定colorPrimary,就像我对白天和夜晚的颜色所做的那样