Android 默认按钮颜色

Tom*_*mer 6 java xml android android-button material-components-android

当我打开一个新的 android studio 项目时,按钮的默认颜色是紫色。我希望默认颜色是灰色的默认按钮颜色(我假设你知道我的意思)。我试图通过 xml 和 java 更改颜色,但没有任何效果。我希望默认按钮颜色为灰色,而不必每次都更改它。 在此处输入图片说明

在此处输入图片说明

他们的.xml:

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.HangmanGame" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/purple_500</item>
    <item name="colorPrimaryVariant">@color/purple_700</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_700</item>
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->
</style>
Run Code Online (Sandbox Code Playgroud)

主题.xml(晚上)

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.HangmanGame" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/purple_200</item>
    <item name="colorPrimaryVariant">@color/purple_700</item>
    <item name="colorOnPrimary">@color/black</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_200</item>
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->
</style>
Run Code Online (Sandbox Code Playgroud)

Gab*_*tti 9

由于您使用的是Theme.MaterialComponents.*主题,因此Button(由 a 替换MaterialButton)的默认背景颜色是colorPrimary在您的应用程序主题中定义的。
在你的情况下:

<item name="colorPrimary">@color/purple_500</item>
Run Code Online (Sandbox Code Playgroud)

您可以更改此值(但这会影响所有小部件)。

如果要全局更改应用程序中的按钮样式,还可以materialButtonStyle在应用程序主题中添加该属性:

<style name="Theme.HangmanGame" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
   <item name="materialButtonStyle">@style/Widget.App.Button</item>
</style>
Run Code Online (Sandbox Code Playgroud)

和:

<style name="Widget.App.Button" parent="Widget.MaterialComponents.Button">
    <item name="backgroundTint">@color/...</item>
</style>
Run Code Online (Sandbox Code Playgroud)

如果您只想在按钮中更改此颜色,您还可以使用app:backgroundTint删除android:background属性的属性:

<Button
    app:backgroundTint="@color/..."/>
Run Code Online (Sandbox Code Playgroud)

如果要使用该android:background属性使用自定义背景,则必须添加该属性app:backgroundTint="@null"以避免按钮被着色。