Android 默认按钮颜色
Posted
技术标签:
【中文标题】Android 默认按钮颜色【英文标题】:Android default button color 【发布时间】: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 设置为紫色。将这些更改为灰色不起作用? 默认按钮颜色的十六进制值是多少? 【参考方案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://***.com/a/7323234/5374362
这条线看起来像这样:
<color name="button">#808080</color> //That code is the gray you want.
在两个主题文件中,将colorPrimary改为“@color/button”
这将影响应用中的每个按钮。
【讨论】:
以上是关于Android 默认按钮颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 的浮动操作按钮 FAB 中保留可绘制的默认颜色