显示两种颜色的FloatingActionButton(圆圈)

时间:2018-11-11 03:10:15

标签: android floating-action-button

我在布局中添加了一个FloatingActionButton,其中唯一的父级是CoordinatorLayout,所以我不知道backgroundTint颜色的来源。

我试图更改颜色以匹配内部圆圈,但是它将整个按钮更改为纯色。

我还应用了另一种样式,但是它根本没有改变按钮。 我过去曾解决过此问题,但我不记得我是怎么做到的。

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:src="@drawable/ic_action_add"
        app:layout_anchor="@+id/edit_layout"
        app:layout_anchorGravity="bottom|right|end" />

enter image description here

2 个答案:

答案 0 :(得分:1)

灰色来自colorAccent中为应用主题定义的style.xml。现在@drawable/ic_action_add是一个实心圆圈内的加号。尝试改用下面的图标:

ic_add_black_24dp.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:fillColor="#000000"
        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" />
</vector>

enter image description here

然后将FloatingActionButton的背景色设置为深红色,将图标色设置为灰色:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="16dp"
    app:layout_anchor="@+id/edit_layout"
    app:layout_anchorGravity="bottom|right|end"
    app:tint="#404D54"
    app:backgroundTint="#6F303A"
    app:srcCompat="@drawable/ic_add_black_24dp" />

结果:

enter image description here

答案 1 :(得分:0)

您没有提供任何app:backgroundTint,因此它使用了colors.xml中的默认colorAccent

要解决此问题

1。向colors.xml添加新颜色

<color name="fab_tint">#33d1ac</color>

2。更改代码,如下所示:

  <android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:src="@drawable/ic_action_add"
    app:layout_anchor="@+id/edit_layout"
    app:layout_anchorGravity="bottom|right|end"         
    app:backgroundTint="@color/fab_tint"/>