我是一名设计师,即将对Android上的标准组件进行一些重新设计。现在我试图弄清楚按钮状态是如何工作的。根据材料设计指南,标准按钮,浮动动作按钮,凸起和平面按钮具有四种状态:正常,聚焦,按下和禁用。如何更改Android上的按钮颜色?
- 如果我只指定正常状态的颜色 - 系统会根据该值为其他状态选择颜色吗?对于其他交互元素,如下拉菜单,这是否也是如此?
- 我可以(轻松地)为其他州使用自定义颜色吗?
我是一名设计师,即将对Android上的标准组件进行一些重新设计。现在我试图弄清楚按钮状态是如何工作的。根据材料设计指南,标准按钮,浮动动作按钮,凸起和平面按钮具有四种状态:正常,聚焦,按下和禁用。如何更改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"
...
/>
没有系统本身不带颜色,如果你的正常颜色提供州。 对于你的第二个问题,如果你想给形状,然后由@Surace绘制中指定的文件夹,你可以创建一个选择,但如果你希望基于状态只改变颜色,然后在
资源创建一个选择/颜色
目录。
其余部分保持不变,因为您在可绘制文件夹中创建的选择器中实现。
太好了。好。所以,如果我举个例子,在一个凸起的按钮上不要手动添加按下状态的颜色,没有什么改变? –
通过[链接](https://developer.android.com/guide/topics/resources/color-list-resource.html) –
所以你有你的答案@托尼是吗? –
我的理解是否正确 - 如果我想查看更改,我必须为每个州手动添加颜色?该系统不会为我提供任何建议,或者对于州有一个默认颜色? –