如何在Android上更改按钮颜色?

时间:2016-11-15 09:33:06

标签: android material-design

我是一名设计师,即将在Android上重新设计标准组件。现在我想弄清楚按钮状态是如何工作的。根据材料设计指南,标准按钮,浮动操作按钮,凸起和平面按钮有四种状态:正常,聚焦,按下和禁用。

  • 如果我只为Normal状态指定颜色 - 系统会根据其他状态的值选择颜色吗?这对其他互动元素也是如此,例如下拉吗?
  • 我可以(轻松)为其他州应用自定义颜色吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

中创建一个选择器
  

RES /颜色

。目录

当你在drawable文件夹中创建的选择器中实现时,其余的东西保持不变。