首页 > 解决方案 > 如何通过xml设置具有透明度的浮动操作按钮的边框和背景颜色?

问题描述

我已经尝试过这个解决方案:https ://stackoverflow.com/a/54074154/10299002 只要 FAB 位于深色背景上,它就可以很好地工作。但是,当它越过白色背景时,它似乎会破裂。可能是什么问题?

这是我的FAB:

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:theme = "?appAccentStyle"
        android:id="@+id/button_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        android:layout_margin="16dp"
        app:backgroundTint="?colorFloatingActionButtonBorder"
        android:src="@drawable/ic_arrow_downward_24dp"
        android:tint="?colorAccent"
        android:backgroundTint="?colorFloatingActionButtonBackground"
        tools:visibility="visible"
        android:layout_gravity="end|bottom" />

这是正在应用的样式:

<style name="LimeColorAccent">
        <item name="colorAccent">@color/Lime</item>
        <item name="appAccentStyle">@style/LimeColorAccent</item>
        <item name="colorFloatingActionButtonBorder">@color/LimeTranslucentBorder</item>
        <item name="colorFloatingActionButtonBackground">@color/LimeTranslucent</item>
    </style>

以下是使用的颜色:

<color name="Lime">#FFCDDC39</color>
<color name="LimeTranslucentBorder">#4cCDDC39</color>
<color name="LimeTranslucent">#26CDDC39</color>

输出:

FAB 在黑色背景上正确设置样式 FAB 看起来被白色打破了

编辑:

尝试了这个解决方案:https ://stackoverflow.com/a/57307389/10299002

我的 fab.xml:(与解决方案中的相同)

我的浮动操作按钮:

 <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/button_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_arrow_downward_24dp"
        android:background="@drawable/fab"
        android:layout_margin="16dp"
        android:layout_gravity="end|bottom"
        app:fabSize="normal"
        app:backgroundTint="#55990000"
        app:borderWidth="0dp"
        app:elevation="2dp"
        tools:visibility="visible" />

输出:(内圈仍然破碎)

内圈仍然破裂

标签: androidxmlandroid-studio

解决方案


我使用了您的代码并直接使用了颜色。并找到了黑色背景和白色背景的两个结果。

在此处输入图像描述

在此处输入图像描述

和代码:

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/button_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:layout_margin="16dp"
        app:backgroundTint="#4cCDDC39"
        android:src="@drawable/ic_action_profile"
        android:tint="@color/colorAccent"
        app:borderWidth="2dp"
        android:backgroundTint="#26CDDC39"
        tools:visibility="visible"
        android:layout_gravity="end|bottom" />

推荐阅读