【问题标题】:Android styles: how to change colors in styles.xmlAndroid样式:如何更改styles.xml中的颜色
【发布时间】:2015-03-09 13:47:38
【问题描述】:

我想更改一些 android UI 元素的颜色。但我更愿意设置一个默认的色调,它适用于所有 UI 元素。我不确定这是否可能。 如果没有,我想设置一些 UI 元素的“tint”-color,如下图所示。有谁能赐教吗?

编辑

根据 Entreco 的建议:

我的样式.xml:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="android:textColorPrimary">@color/brown</item>
        <item name="android:textColorSecondary">@color/brown</item>
        <item name="android:textColorTertiary">@color/brown</item>
        <item name="android:textColorPrimaryInverse">@color/brown</item>
        <item name="android:textColorSecondaryInverse">@color/brown</item>
        <item name="android:textColorTertiaryInverse">@color/brown</item>

        <item name="colorPrimary">@color/blue</item>
        <item name="colorPrimaryDark">@color/blue</item>

        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarStyle">@style/MyActionBar</item>

    </style>
    <!-- style for the action bar backgrounds -->
    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
        <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="android:subtitleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="android:background">@color/brown</item>
        <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="subtitleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="background">@color/brown</item>
    </style>
    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/brown_light</item>
        <item name="android:textSize">24sp</item>
    </style>

</resources>

还有我的价值观-v21/styles.xml:

<resources>
    <style name="AppTheme" parent="AppTheme.Base">
        <item name="android:colorPrimary">@color/blue</item>
        <item name="android:colorPrimaryDark">@color/blue</item>
        <!-- <item name="android:colorAccent">@color/white</item> -->
    </style>
</resources>

在我的清单中:

<application android:theme="@style/AppTheme.Base" >
    ...
</application>

但是原色还是一样的……???

【问题讨论】:

  • 没有简单的方法(对于 API
  • 如果您想单独更改每个视图属性,您必须在 XML 布局中为它们设置主题(而不是样式)。例如,只需添加android: theme="@style/yourThemeHere"

标签: android colors android-styles


【解决方案1】:

从 Lollipop 开始,这要归功于 colorPrimary 属性:

文件值/styles.xml:

<!-- Base application theme. -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
</style>

文件值-v21/styles.xml:

<style name="AppTheme" parent="AppTheme.Base">
    <item name="android:colorPrimary">@color/primary</item>
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <item name="android:colorAccent">@color/white</item>
</style>

基本上,您可以为您的应用定义一个调色板,我相信您希望设置 colorPrimary(未验证)。

更多信息Material colors

【讨论】:

  • 我认为应该这样做。但是,它对我的​​情况没有影响:请参阅上面的编辑。
  • 还有前棒棒糖?在 ICS 中?
猜你喜欢
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2019-07-31
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 2012-01-18
相关资源
最近更新 更多