Android Ripple Button with Background color

自从引入了 Meterial design,Android 变得漂亮了许多,比如从 Lollipop 开始 Button 默认就带有了 Ripple 效果。但如果给这个 Button 赋了 background 属性,改变了它的背景色,则会发现 Ripple 效果消失了。

如果要改变它的背景色,还想要有 Ripple 效果,那么不要改它的 background 属性,而是将它的 style 属性设置为 @style/Widget.AppCompat.Button.Colored,然后在 Colors.xml 中更改 colorAccent 的颜色值即可。但是要注意,这种方式类似改变“主题”,程序中所有的按钮、单选框等控件的颜色都会一同改变。

除了 colorAccent,还有 colorPrimary, colorPrimaryDark 等可以改变的主题颜色。