Просто загрузите пакет отсюда и добавьте его в путь к классам вашего проекта или просто используйте репозиторий maven:
Градл:
implementation ' com.ramotion.circlemenu:circle-menu:0.3.2 '
СБТ:
libraryDependencies += " com.ramotion.circlemenu " % " circle-menu " % " 0.3.2 "
Мавен:
< dependency >
< groupId >com.ramotion.circlemenu</ groupId >
< artifactId >circle-menu</ artifactId >
< version >0.3.2</ version >
</ dependency >
Поместите CircleMenuView
в свой макет и установите значки и цвета кнопок, как показано ниже.
app:button_colors="@array/colors"
app:button_icons="@array/icons"
Пример colors
и icons
массивов в resvaluesbuttons.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 >
Или используйте конструктор
CircleMenuView ( @ NonNull Context context , @ NonNull List < Integer > icons , @ NonNull List < Integer > colors )
добавить CircleMenuView
и настроить кнопки программно (в коде).
Затем подключите обработчик событий CircleMenuView.EventListener
как показано ниже, и переопределите нужные вам методы.
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 );
}
});
Вы можете использовать методы open(boolean animate)
и close(boolean animate)
для программного открытия и закрытия меню.
Вот атрибуты, которые вы можете указать с помощью XML или связанных с ним установщиков:
button_icons
— Массив иконок кнопок.button_colors
— Массив цветов кнопок.icon_menu
— значок меню по умолчанию.icon_close
— Значок закрытия меню.icon_color
— цвет значка меню.duration_ring
— продолжительность эффекта кольца.duration_open
— продолжительность анимации открытия меню.duration_close
— продолжительность анимации закрытия меню.distance
- Расстояние между центральной кнопкой и кнопками. Circle Menu Android выпускается под лицензией MIT. Подробности см. в разделе ЛИЦЕНЗИЯ.
Эта библиотека является частью подборки наших лучших проектов пользовательского интерфейса с открытым исходным кодом.
Если вы используете библиотеку с открытым исходным кодом в своем проекте, обязательно укажите ссылку на www.ramotion.com.
Попробуйте этот компонент пользовательского интерфейса и многое другое в нашем приложении для Android. Свяжитесь с нами, если интересно.