首页 » Andorid » 安卓例子 » 正文

可能是最好看的 Android 圆形 Menu 菜单效果。

header



CircleMenu for Android

Twitter Codacy Badge Donate

Check this library on other platforms:

Looking for developers for your project?

The Android mockup available here.

Requirements

  • Android 4.1 Jelly Bean (API lvl 16) or greater
  • Your favorite IDE

Installation

​ Just download the package from here and add it to your project classpath, or just use the maven repo:

Gradle:

compile 'com.ramotion.circlemenu:circle-menu:0.3.1'

SBT:

libraryDependencies += "com.ramotion.circlemenu" % "circle-menu" % "0.3.1"

Maven:


    com.ramotion.circlemenu
    circle-menu
    0.3.1

Basic usage

Place the CircleMenuView in your layout and set the icons and colors of the buttons, as shown below.

app:button_colors="@array/colors"
app:button_icons="@array/icons"

Example of arrays colors and icons in resvaluesbuttons.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

Or use the constructor

CircleMenuView(@NonNull Context context, @NonNull List icons, @NonNull List colors)

to add CircleMenuView and configure the buttons programmatically (in the code).

Next, connect the event handler CircleMenuView.EventListener as shown below, and override the methods you need.

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);
    }
});

You can use open(boolean animate) and close(boolean animate) methods, to open and close menu programmatically

Here are the attributes you can specify through XML or related setters:

  • 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


This library is a part of a selection of our best UI open-source projects.

License

​ CircleMenu for Android is released under the MIT license. See LICENSE for details.

Get the Showroom App for Android to give it a try

Try our UI components in our mobile app. Contact us if interested.



Follow us

下载 (11)

发表评论