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)
由于您使用的是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"
以避免按钮被着色。