小编典典

Android 更改浮动操作按钮颜色

all

我一直在尝试更改 Material 的 Floating Action Button 颜色,但没有成功。

<android.support.design.widget.FloatingActionButton
    android:id="@+id/profile_edit_fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@drawable/ic_mode_edit_white_24dp" />

我试图添加:

android:background="@color/mycolor"

或通过代码:

FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.profile_edit_fab);
fab.setBackgroundColor(Color.parseColor("#mycolor"));

要么

fab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#mycolor")));

但以上都没有奏效。我也尝试了提出的重复问题中的解决方案,但它们都不起作用;按钮保持绿色,也变成了一个正方形。

PS如果知道如何添加涟漪效果也很好,也无法理解。


阅读 141

收藏
2022-03-06

共1个答案

小编典典

文档中所述,默认情况下,它采用styles.xml属性colorAccent中设置的颜色。

此视图的背景颜色默认为主题的 colorAccent。如果您希望在运行时更改此设置,则可以通过 setBackgroundTintList(ColorStateList) 进行。

如果你想改变颜色

  • 在具有属性app:backgroundTint的 XML 中
<android.support.design.widget.FloatingActionButton
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_add"
    app:backgroundTint="@color/orange"
    app:borderWidth="0dp"
    app:elevation="6dp"
    app:fabSize="normal" >
  • 在带有.setBackgroundTintList的代码中(下面由ywwynm回答)

正如评论中提到的@Dantalian,如果您希望将 Design Support Library 的图标颜色更改为 v22 (inclusive),您可以使用

android:tint="@color/white"     

对于v23 以来的设计支持库,您可以使用:

app:tint="@color/white"   

同样对于androidX库,您需要在 xml 布局中设置 0dp 边框:

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_add"
    app:backgroundTint="@color/orange"
    app:borderWidth="0dp"
    app:elevation="6dp"
    app:fabSize="normal" />
2022-03-06