Custom floating action button with animation and the option to add up to 3 action buttons.
If you want to thank me for this library, you can do so below:
The demo app can be downloaded here
Add JitPack in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Add the dependency to your app level build.gradle
dependencies {
implementation 'com.github.HBiSoft:Fabb:0.0.1'
}
public class MainActivity extends AppCompatActivity { //Declare Fabb Fabb fabb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initialize Fabb fabb = findViewById(R.id.fabb); } }
Set event listeners:
fabb.setEventListener(new FabbListener() { @Override public void onFabbOpened() { //Fabb was opened } @Override public void onFabbClosed() { //Fabb was closed } @Override public void onFabbMainPressed() { //Main Fabb was pressed } @Override public void onFabbActionOnePressed() { //Action button one was pressed //This is the action button above the main Fabb } @Override public void onFabbTwoPressed() { //Action button two was pressed } @Override public void onFabbThreePressed() { //Action button three was pressed //This is the action button at the top } });
This can be done in xml or in java.
If you set this in java and in xml, then java will be favoured
Java:
// Set number of action buttons (up to 3) - defaults to 0 fabb.setNumberOfActions(3); // Set custom font fabb.setCustomFont(Typeface.createFromAsset(getAssets(), "fonts/YourFont.otf")); // Set main Fabb background fabb.setMainFabBackgroundColor(getResources().getColor(R.color.colorPrimary)); // Set main Fabb icon fabb.setMainFabIcon(getResources().getDrawable(R.drawable.ic_mail_white_24dp)); // Set main Fabb color when opened fabb.setMainFabonOpenedColor(getResources().getColor(R.color.colorPrimary)); // Set action buttons text fabb.setActionOneText("Email"); fabb.setActionTwoText("Call"); fabb.setActionThreeText("Video Call"); // Set all action buttons background color fabb.setAllActionsBackground(getResources().getColor(R.color.colorPrimary)); // Set background for spesific action button fabb.setActionOneBackgroundColor(R.drawable.ic_mail_white_24dp); fabb.setActionTwoBackgroundColor(R.drawable.ic_mail_white_24dp); fabb.setActionThreeBackgroundColor(R.drawable.ic_mail_white_24dp); // Set action buttons icon fabb.setActionOneIcon(R.drawable.ic_mail_white_24dp); fabb.setActionTwoIcon(R.drawable.ic_call_white_24dp); fabb.setActionThreeIcon(R.drawable.fab_cam); // Keep Fabb open until close button is pressed fabb.dismissOnOutsideClicked(false); // Check if Fabb is open (returns boolean) fabb.isOpen();
xml:
// Set number of action buttons (up to 3) - defaults to 0 app:setNumberOfActions="3" // Set background for spesific action button app:setActionOneBackgroundColor="#b51a2d" app:setActionTwoBackgroundColor="#b51a2d" app:setActionThreeBackgroundColor="#b51a2d" // Set main Fabb background app:setMainFabBackgroundColor="#0094de" // Set main Fabb icon app:setMainIcon="@drawable/ic_close_black_24dp" // Set main Fabb color when opened app:setMainFabOpenedColor="@android:color/white" // Set action button text app:setActionOneText="Some Text" app:setActionTwoText="Some Text" app:setActionThreeText="Some Text" // Set action button icon app:setActionOneIcon="@drawable/ic_close_black_24dp" app:setActionTwoIcon="@drawable/ic_close_black_24dp" app:setActionThreeIcon="@drawable/ic_close_black_24dp"