Search code examples
androidfloating-action-button

Remove background colour from FloatingActionButton


I am using several FloatingActionButton in my application as :

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/loc_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_marginBottom="123dp"
        android:layout_marginEnd="@dimen/mini_fab_margin"
        android:src="@drawable/plus"
        app:backgroundTint="@android:color/black"
        app:elevation="2dp"
        app:fabSize="mini"/>

Where plus.png is a small plus image with transparent background.

I know FloatingActionButton by default picks up colorPrimary of your applicaytion set in colors.xml

I know we can change the colour via tag :

    app:backgroundTint="@android:color/black"

But can we remove colour? I mean can we have an Image with background colour in FloatingActionButton,

I tried using

    app:backgroundTint="@android:color/transparent"

But it still displays black shadow around image. How can we remove this and display just the image without any background. ?

This is what app:backgroundTint="@android:color/transparent" and style : style="?android:attr/borderlessButtonStyle" makes it look like :

look for transparent circle because of shadow

Look for transparent circle around because of shadow. It is here that I can not get rid of shadow but I want shadow to be around image.


Solution

  • I found the solution myself and would like to share same.

    So FloatingActionButton comes in three sizes : normal and mini and auto.

    But if we want smaller size images to appear in FloatingActionButton without background being present, we need to remove following things :

    • remove app:backgroundTint to make FloatingActionButton transparent.
    • remove app:rippleColor to remove ripple effect and make shadow appear around our smaller image and not around FloatingActionButton(error effect Shown in Image in question).

    so final FloatingActionButton looks like following :

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/my_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/center_small"
        app:rippleColor="@null"
        app:backgroundTint="@null"
        app:fabSize="mini"/>
    

    I hope it helps.