根据深色模式变化

2024-04-02

如何才能使 MainActivity.xml 中的可绘制对象和对象根据深色模式是否打开而改变颜色?我在colors.xml中有这个:

<resources>
<color name="colorPrimary">#141414</color>
<color name="colorPrimaryDark">#000000</color>
<color name="colorAccent">#C923FE</color>
<color name="textColor">#9719BF</color>


<color name="colorPrimary2">#81CDC9</color>
<color name="colorPrimaryDark2">#A8F8F3</color>
<color name="colorAccent2">#3C3C3C</color>
<color name="textColor2">#6E6E6E</color>

我希望将第二组颜色设置为浅色模式,将第一组颜色设置为深色模式。我的 styles.xml 包含以下内容:

<style name="AppThemeDark" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:statusBarColor">@color/colorPrimary</item>
    <item name="android:textColorHint">@color/textColor</item>
</style>


<style name="AppThemeLight" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary2</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark2</item>
    <item name="colorAccent">@color/colorAccent2</item>
    <item name="android:statusBarColor">@color/colorPrimary2</item>
    <item name="android:textColorHint">@color/textColor2</item>
</style>

如果 MainActivity 中的可绘制对象和组件通过类似的方式访问它们的颜色

android:textColor="@color/colorAccent"

那么如果深色模式打开/关闭,我有没有办法更改应用程序的调色板?我在我看过的所有教程中是否遗漏了一些东西,我必须对 MainActivity.xml 组件和可绘制对象做一些特殊的事情,以便它们可以以不同的方式访问颜色?谢谢 :)


不需要重复颜色和绘图。只需创建 -night 文件夹即可可绘制之夜 and 价值观之夜 etc.

然后放置具有相同名称的相同文件(colors.xml/drawable 文件)。

Sample:

值/颜色.xml

<color name="colorDefaultText">#757575</color>

值-night/colors.xml

<color name="colorDefaultText">#FFFFFF</color>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据深色模式变化 的相关文章

随机推荐