android - 如何更改 Android 上的按钮颜色?

标签 android material-design

我是一名设计师,即将对 Android 上的标准组件进行一些轻微的重新设计。现在我正在尝试弄清楚按钮状态是如何工作的。根据 Material Design 指南,标准按钮、 float 操作按钮、凸起按钮和平面按钮有四种状态:正常、焦点、按下和禁用。

  • 如果我只为正常状态指定颜色,系统是否会根据其他状态的该值选择颜色?对于其他交互元素(例如下拉菜单)来说也是如此吗?
  • 我可以(轻松)为其他状态应用自定义颜色吗?

最佳答案

您可以使用选择器自定义按钮状态颜色。

假设以下是您的可绘制目录中的button_state_color.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:color="hex_color"
    android:state_pressed=["true" | "false"]
    android:state_focused=["true" | "false"]
    android:state_selected=["true" | "false"]
    android:state_checkable=["true" | "false"]
    android:state_checked=["true" | "false"]
    android:state_enabled=["true" | "false"]
    android:state_window_focused=["true" | "false"] />
</selector>

像这样在你的按钮中使用它

<Button
 ...
 android:background="@drawable/button_state_color.xml"
...     
/>

关于android - 如何更改 Android 上的按钮颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40606364/

相关文章:

angularjs - 验证 md-text-float 中的 minlength 和 maxlength

Android Navigation Drawer - 用其他列表替换列表 onClick

java - 为什么复选框中的框不可见?

android - 如何在满足某些条件的情况下放大/缩小可绘制的 imageView

java - 获取错误膨胀类 android.support.design.widget.NavigationView

android - Android 图标大小应遵循哪个 Google 文档?

flutter - 使用 ScaffoldMessenger GlobalKey 时将正确的主题应用于 SnackBar

android - 没有语法错误,代码仍然无法正常工作

android - 如何使用 RangeSeekbar 的 onProgressChanged 方法?

android - 无法理解 res 文件夹中的可绘制结构