当您使用android:background
时,您将用空白 colored颜色 替换按钮的大部分样式和外观.
Update:从AppCompat中的version 23.0.0 release开始,有一个新的Widget.AppCompat.Button.Colored
样式使用你的主题的colorButtonNormal
作为禁用 colored颜色 ,colorAccent
作为启用 colored颜色 .
这使您可以直接通过
<Button
...
style="@style/Widget.AppCompat.Button.Colored" />
如果您需要定制colorButtonNormal
或colorAccent
,可以使用ThemeOverlay
,如按钮上的this pro-tip和android:theme
所述.
Previous Answer
您可以使用v21目录中的可绘制文件作为背景,例如:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="?attr/colorPrimary"/>
</ripple>
这将确保您的背景色为?attr/colorPrimary
,并使用默认的?attr/colorControlHighlight
(如果您愿意,也可以在主题中设置)设置默认的涟漪动画.
注意:您必须创建低于v21的自定义 Select 器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primaryPressed" android:state_pressed="true"/>
<item android:drawable="@color/primaryFocused" android:state_focused="true"/>
<item android:drawable="@color/primary"/>
</selector>
假设您有一些默认、按下和聚焦状态所需的 colored颜色 .就我个人而言,我在被选中的中途拍下了一张涟漪的截图,并从中摆脱了主要/集中的状态.