我有Button
使用形状作为背景。
根据state
Button
,形状会有不同的颜色
我是否可以在state
的xml中指定每个Button
的颜色?我很抱歉新手问题。
请问任何指南?
button_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" >
<shape android:shape="rectangle" >
<corners android:radius="10dp" />
<solid android:color="@color/colorPrimary" />
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="rectangle" >
<corners android:radius="10dp" />
<solid android:color="@color/colorPrimary" />
</shape>
</item>
<item >
<shape android:shape="rectangle" >
<corners android:radius="10dp" />
<solid android:color="@color/colorWhite" />
</shape>
</item>
</selector>
目前如何调用
<Button
android:id="@+id/loginButton"
android:background="@drawable/button_background"
android:text="@string/login_button_title"/>
答案 0 :(得分:1)
这是一个迟到的答案,但我在this post中详细描述了你想要的内容,甚至如何在你的背景中产生涟漪,你可能想看一下
答案 1 :(得分:0)
以XML格式创建颜色状态列表。
res/color/button_bg.xml
:
<selector xmlns:android="...">
<item android:color="@color/colorPrimary" android:state_focused="true" />
<item android:color="@color/colorPrimary" android:state_pressed="true" />
<item android:color="@color/colorWhite" />
</selector>
然后你的形状drawable可以简单地使用这个颜色资源:
res/drawable/button_bg.xml
<shape xmlns:android="..."
android:shape="rectangle" >
<corners android:radius="10dp" />
<solid android:color="@color/button_bg" />
</shape>