我想在不删除涟漪效果/阴影/悬停效果的情况下更改按钮的背景颜色。
我还想要一个不会重新实现this question中描述的涟漪效应的解决方案。
它至少也应该适用于KitKat及以上版本。
以下列出了我尝试过的不起作用的内容:
Button.setBackgroundColor(0x2200FF00);
更改按钮的背景颜色,但它会消除标准Android材质按钮的涟漪效果,阴影和所有视觉美感。
Button.setBackgroundTintList(Context.getResources().getColorStateList(R.color.Blue));
android:backgroundTint="#0000FF"
可以使用,但不适用于KitKat(API> = 21)。
<style name="ButtonBlue">
<item name="colorButtonNormal">@color/colorBlue</item>
</style>
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Button.setTextAppearance(R.style.ButtonBlue);
} else {
Button.setTextAppearance(Context, R.style.ButtonBlue);
}
仅在XML中定义时才有效,setTextAppearance不会动态更改主题。
android:theme="@style/ButtonBlue"
是否可以像这样动态设置按钮的背景颜色?