Install Circle Menu for Android
masterYou can install the library using Gradle, SBT, or Maven. The library requires Android 4.1 Jelly Bean (API lvl 16) or greater.
implementation 'com.ramotion.circlemenu:circle-menu:0.3.2'repository·master·Indexed 23 days ago
https://github.com/ramotion/circle-menu-androidAn Android UI component providing a circular menu layout with Material Design animations. Supports configuration via XML attributes or programmatically, event handling through CircleMenuView.EventListener, and programmatic control of menu visibility. Requires Android 4.1 (API level 16) or greater.
You can install the library using Gradle, SBT, or Maven. The library requires Android 4.1 Jelly Bean (API lvl 16) or greater.
implementation 'com.ramotion.circlemenu:circle-menu:0.3.2'To use the menu in your layout, place the CircleMenuView in your XML and provide arrays for button icons and colors using the app:button_icons and app:button_colors attributes.
Example resource definition in res/values/buttons.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="icons">
<item>@drawable/ic_home_white_24dp</item>
<item>@drawable/ic_search_white_24dp</item>
<item>@drawable/ic_notifications_white_24dp</item>
<item>@drawable/ic_settings_white_24dp</item>
<item>@drawable/ic_place_white_24dp</item>
</array>
<array name="colors">
<item>@android:color/holo_blue_light</item>
<item>@android:color/holo_green_dark</item>
<item>@android:color/holo_red_light</item>
<item>@android:color/holo_purple</item>
<item>@android:color/holo_orange_light</item>
</array>
</resources>app:button_colors="@array/colors"
app:button_icons="@array/icons"Use the following methods to open or close the menu programmatically. Both methods accept a boolean to determine if the transition should be animated.
open(boolean animate)close(boolean animate)You can instantiate and configure the menu directly in your Java code using the constructor:
CircleMenuView(@NonNull Context context, @NonNull List<Integer> icons, @NonNull List<Integer> colors)
To respond to menu animations and button clicks, implement the CircleMenuView.EventListener and attach it using setEventListener().
Available methods to override:
onMenuOpenAnimationStart(@NonNull CircleMenuView view)onMenuOpenAnimationEnd(@NonNull CircleMenuView view)onMenuCloseAnimationStart(@NonNull CircleMenuView view)onMenuCloseAnimationEnd(@NonNull CircleMenuView view)onButtonClickAnimationStart(@NonNull CircleMenuView view, int index)onButtonClickAnimationEnd(@NonNull CircleMenuView view, int index)final CircleMenuView menu = (CircleMenuView) findViewById(R.id.circle_menu);
menu.setEventListener(new CircleMenuView.EventListener() {
@Override
public void onMenuOpenAnimationStart(@NonNull CircleMenuView view) {
Log.d("D", "onMenuOpenAnimationStart");
}
@Override
public void onMenuOpenAnimationEnd(@NonNull CircleMenuView view) {
Log.d("D", "onMenuOpenAnimationEnd");
}
@Override
public void onMenuCloseAnimationStart(@NonNull CircleMenuView view) {
Log.d("D", "onMenuCloseAnimationStart");
}
@Override
public void onMenuCloseAnimationEnd(@NonNull CircleMenuView view) {
Log.d("D", "onMenuCloseAnimationEnd");
}
@Override
public void onButtonClickAnimationStart(@NonNull CircleMenuView view, int index) {
Log.d("D", "onButtonClickAnimationStart| index: " + index);
}
@Override
public void onButtonClickAnimationEnd(@NonNull CircleMenuView view, int index) {
Log.d("D", "onButtonClickAnimationEnd| index: " + index);
}
});The following attributes can be specified via XML or through related setter methods:
button_icons: Array of buttons icons.button_colors: Array of buttons colors.icon_menu: Menu default icon.icon_close: Menu closed icon.icon_color: Menu icon color.duration_ring: Ring effect duration.duration_open: Menu opening animation duration.duration_close: Menu closing animation duration.distance: Distance between center button and buttons