2016-11-15 90 views
2

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

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

回答

3

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

假设下面是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" 
...  
/> 
+0

通过[链接](https://developer.android.com/guide/topics/resources/color-list-resource.html) –

+0

所以你有你的答案@托尼是吗? –

+0

我的理解是否正确 - 如果我想查看更改,我必须为每个州手动添加颜色?该系统不会为我提供任何建议,或者对于州有一个默认颜色? –

1

没有系统本身不带颜色,如果你的正常颜色提供州。 对于你的第二个问题,如果你想给形状,然后由@Surace绘制中指定的文件夹,你可以创建一个选择,但如果你希望基于状态只改变颜色,然后在

资源创建一个选择/颜色

目录。

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

+0

太好了。好。所以,如果我举个例子,在一个凸起的按钮上不要手动添加按下状态的颜色,没有什么改变? –