【问题标题】:How to change button colors on Android?如何在 Android 上更改按钮颜色?
【发布时间】:2016-11-15 09:33:05
【问题描述】:

我是一名设计师,即将对 Android 上的标准组件进行一些轻微的重新设计。现在我正试图弄清楚按钮状态是如何工作的。根据 Material Design 指南,标准按钮、浮动操作按钮、Raised 和 Flat 按钮有四种状态:Normal、Focus、Pressed 和 Disabled。

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

【问题讨论】:

    标签: android material-design


    【解决方案1】:

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

    假设以下是您的可绘制目录中的 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"
    ...     
    />
    

    【讨论】:

    • 通过link
    • 我理解正确吗?如果我想看到变化,我必须为每个状态手动添加颜色?系统没有为我提供任何建议或没有默认的状态颜色?
    【解决方案2】:

    如果您为正常状态提供颜色,则任何系统都不会自行获取颜色。 对于你的第二个问题,如果你想给出形状,那么你可以在 drawable 文件夹中创建一个由 @Surace 指定的选择器,但是如果你只想根据状态更改颜色,那么在

    中创建一个选择器

    分辨率/颜色

    目录。

    其余部分保持不变,就像您在可绘制文件夹中创建的选择器中实现的那样。

    【讨论】:

    • 太棒了。行。因此,例如,如果我不手动为凸起按钮上的按下状态添加颜色,则没有任何变化?
    猜你喜欢
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多