Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上更改按钮颜色?_Android_Material Design - Fatal编程技术网

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

如何在Android上更改按钮颜色?,android,material-design,Android,Material Design,我是一名设计师,即将对Android上的标准组件进行一些轻微的重新设计。现在我想弄清楚按钮状态是如何工作的。根据材料设计指南,标准按钮、浮动动作按钮、凸起和扁平按钮有四种状态:正常、聚焦、按下和禁用 如果我只为正常状态指定一种颜色,系统会根据该值为其他状态选择颜色吗?其他交互元素(如下拉列表)也是如此吗 我可以(轻松地)为其他州应用自定义颜色吗 您可以使用选择器自定义按钮状态颜色 假设以下是可绘制目录中的button_state_color.xml文件 <?xml version="1.

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

  • 如果我只为正常状态指定一种颜色,系统会根据该值为其他状态选择颜色吗?其他交互元素(如下拉列表)也是如此吗
  • 我可以(轻松地)为其他州应用自定义颜色吗
您可以使用选择器自定义按钮状态颜色

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

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

分辨率/颜色

目录


其余部分保持不变,正如您在drawable文件夹中创建的选择器中实现的一样。

检查我是否正确理解了它–如果我想看到更改,我必须手动为每个状态添加颜色?系统没有为我提供任何建议,也没有为各州提供默认颜色?太好了。好啊所以,如果我不手动添加一个颜色,在一个凸起的按钮上按下的状态,没有任何变化?