### 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.