设置按钮的背景颜色而不消除涟漪效应

时间:2017-09-01 08:53:59

标签: android button

我想在不删除涟漪效果/阴影/悬停效果的情况下更改按钮的背景颜色。

我还想要一个不会重新实现this question中描述的涟漪效应的解决方案。

它至少也应该适用于KitKat及以上版本。

以下列出了我尝试过的不起作用的内容:

  1. Button.setBackgroundColor(0x2200FF00);
    

    更改按钮的背景颜色,但它会消除标准Android材质按钮的涟漪效果,阴影和所有视觉美感。

  2. Button.setBackgroundTintList(Context.getResources().getColorStateList(R.color.Blue));
    
    android:backgroundTint="#0000FF"
    

    可以使用,但不适用于KitKat(API> = 21)。

  3. <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"
    
  4. 是否可以像这样动态设置按钮的背景颜色?

0 个答案:

没有答案