Floating Action Button

A circular button made of paper that lifts and emits ink reactions on press.

This widget supports two sizes according to Promoted Actions pattern: normal and mini.
Like an ImageView this widget require android:src attribute. According to official documentation this drawable should be not more than 24dp.
Clone this library on Github, read JavaDoc here.

Gradle dependency

dependencies {
    compile 'com.shamanland:fab:0.0.5'
}

Screenshots

light dark between

Show/hide when user scrolls down/up

Set custom OnTouchListener for scrollable view:
import com.shamanland.fab.FloatingActionButton;
import com.shamanland.fab.ShowHideOnScroll;

// ...

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

ListView listView = (ListView) findViewById(android.R.id.list);
listView.setOnTouchListener(new ShowHideOnScroll(fab));
With custom animations:
listView.setOnTouchListener(new ShowHideOnScroll(fab, R.anim.custom_show, R.anim.custom_hide));

Customizing

Use theme to customize all floating buttons in your app:
Declare own style:
<style name="AppTheme.Fab" parent="FloatingActionButton">
    <item name="floatingActionButtonColor">@color/my_fab_color</item>
</style>
Link this style in your theme:
<style name="AppTheme" parent="android:Theme">
    <item name="floatingActionButtonStyle">@style/AppTheme.Fab</item>
</style>
Customizing in layout.xml:
<com.shamanland.fab.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_action_my"
    app:floatingActionButtonColor="@color/my_fab_color"
    app:floatingActionButtonSize="mini"
    />
Customizing in java-code:
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setSize(FloatingActionButton.SIZE_MINI);
fab.setColor(Color.RED);
// NOTE invoke this method after setting new values!
fab.initBackground();
// NOTE standard method of ImageView
fab.setImageResource(R.drawable.ic_action_my);