android 安卓风格:如何在styles.xml中更改颜色

u5rb5r59  于 2023-02-17  发布在  Android
关注(0)|答案(1)|浏览(229)

我想改变一些android用户界面元素的颜色。但我更喜欢设置一个默认的色调,这适用于所有的用户界面元素。我不知道这是否可行。如果不可行,我想设置一些用户界面元素的“色调”颜色,如下所示。有人能给我启发吗?

编辑

根据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>

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

mw3dktmi

mw3dktmi1#

从Lollipop开始,由于colorPrimary属性,这是非常简单的:
文件值/样式.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/样式.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的更多信息

相关问题