【问题标题】:Android default button colorAndroid 默认按钮颜色
【发布时间】:2021-01-31 15:23:36
【问题描述】:

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

themse.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>

themes.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>

【问题讨论】:

  • 你在使用材料组件库吗?
  • 否,按钮颜色默认为紫色
  • 发布您的应用主题
  • 您的 colorPrimary 和 colorPrimaryVariant 设置为紫色。将这些更改为灰色不起作用?
  • 默认按钮颜色的十六进制值是多少?

标签: java android xml android-button material-components-android


【解决方案1】:

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

<item name="colorPrimary">@color/purple_500</item>

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

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

<style name="Theme.HangmanGame" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
   <item name="materialButtonStyle">@style/Widget.App.Button</item>
</style>

与:

<style name="Widget.App.Button" parent="Widget.MaterialComponents.Button">
    <item name="backgroundTint">@color/...</item>
</style>

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

<Button
    app:backgroundTint="@color/..."/>

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

【讨论】:

    【解决方案2】:

    我认为最简单的方法是进入三个xml文件:src\main\res\values\colors.xml、src\main\res\values\themes.xml和src\main\res\values-night \themes.xml

    在colors.xml 中,添加一种颜色并将其命名为“按钮”,然后将颜色设置为您想要的颜色。有关颜色代码的简单列表,请参阅此答案:https://stackoverflow.com/a/7323234/5374362

    这条线看起来像这样:

    <color name="button">#808080</color>  //That code is the gray you want.
    

    在两个主题文件中,将colorPrimary改为“@color/button”

    这将影响应用中的每个按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-14
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      相关资源
      最近更新 更多