### Install Circle Menu Android Library Source: https://github.com/ramotion/circle-menu-android/blob/master/README.md Instructions for adding the Circle Menu library to an Android project using different build tools. This library provides a circular UI menu with material design animations. ```Groovy implementation 'com.ramotion.circlemenu:circle-menu:0.3.2' ``` ```Scala libraryDependencies += "com.ramotion.circlemenu" % "circle-menu" % "0.3.2" ``` ```XML com.ramotion.circlemenu circle-menu 0.3.2 ``` -------------------------------- ### Define CircleMenuView Button Resources in XML Source: https://github.com/ramotion/circle-menu-android/blob/master/README.md Example XML defining arrays for button icons (icons) and colors (colors) used by CircleMenuView. These resources are typically placed in res/values/buttons.xml. ```xml @drawable/ic_home_white_24dp @drawable/ic_search_white_24dp @drawable/ic_notifications_white_24dp @drawable/ic_settings_white_24dp @drawable/ic_place_white_24dp @android:color/holo_blue_light @android:color/holo_green_dark @android:color/holo_red_light @android:color/holo_purple @android:color/holo_orange_light ``` -------------------------------- ### CircleMenuView Constructor API Source: https://github.com/ramotion/circle-menu-android/blob/master/README.md API definition for the CircleMenuView constructor, allowing programmatic initialization with lists of icons and colors. ```APIDOC CircleMenuView(@NonNull Context context, @NonNull List icons, @NonNull List colors) ``` -------------------------------- ### Configure CircleMenuView XML Attributes Source: https://github.com/ramotion/circle-menu-android/blob/master/README.md Demonstrates how to set button icons and colors using XML attributes directly in the layout file for CircleMenuView. ```xml app:button_colors="@array/colors" app:button_icons="@array/icons" ``` -------------------------------- ### CircleMenuView Programmatic Control Methods API Source: https://github.com/ramotion/circle-menu-android/blob/master/README.md API definitions for methods to programmatically open and close the CircleMenuView. ```APIDOC open(boolean animate): Opens the menu. close(boolean animate): Closes the menu. ``` -------------------------------- ### CircleMenuView XML Attributes and Setters API Source: https://github.com/ramotion/circle-menu-android/blob/master/README.md List of attributes that can be specified for CircleMenuView via XML or programmatically using corresponding setter methods. Includes descriptions for each attribute. ```APIDOC 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 ``` -------------------------------- ### Implement CircleMenuView Event Listener in Java Source: https://github.com/ramotion/circle-menu-android/blob/master/README.md Demonstrates how to attach an EventListener to CircleMenuView to handle various menu animation and button click events. Override specific methods to react to menu state changes. ```java 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); } }); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.